2014-09-24 43 views
0

我有一個通過pyserial和tkinter輸出串行命令的小腳本。tkinter「x」在退出時執行ser.close()

其所有的工作很好,但只需要關閉並釋放串口,並希望在角落裏使用「X」。

從我理解的這是一個o/s「X」而不是tkinter它的自我。

任何人都可以指出我正確的方向嗎?

回答

1

您可以使用類似this

import Tkinter as tk 
import tkMessageBox 
def ask_quit(): 
    if tkMessageBox.askokcancel("Quit", "You want to quit now? *sniff*"): 
     # close your serial here 
     root.destroy() 
root = tk.Tk() 
root.protocol("WM_DELETE_WINDOW", ask_quit) 
root.mainloop() 
1

使用Tk的協議方法。如果你的窗口從Tk的繼承,你可以做這樣的事情

self.protocol("WM_DELETE_WINDOW", self.exit) 
__init__方法

其中self.exit是關閉資源的功能。

如果窗口是在自己的權利的Tk的對象,你可以不喜歡

root = Tkinter.Tk() 
root.protocol("WM_DELETE_WINDOW", <function to close resources>)