2013-03-14 54 views
0

我用Tkinter創建一個窗口。當我點擊退出按鈕時,窗口顯示exe停止工作。有誰能告訴我爲什麼會發生這種情況?我認爲問題在於self.quit,但我不知道原因。Tkinter退出按鈕讓exe無響應

這是代碼。

from Tkinter import * 
class App(Frame): 
    def __init__(self, master = None): 
     Frame.__init__(self, master) 
     self.pack() 
     self.createWidgets() 
    def createWidgets(self): 
     self.Quit = Button(self, text = "QUIT", command = self.quit) 
     self.Quit.pack(side = LEFT) 

root = Tk() 
app =App(master = root) 
app.mainloop() 
+0

我不知道如果這些會有所幫助,但你並不需要'主='在倒數第二行,並嘗試把命令lambda表達式內(拉姆達:self.quit)。這有助於我在過去發生奇怪的錯誤。 – ApproachingDarknessFish 2013-03-14 05:37:46

+0

@ValekHalfHeart:lambda是沒有必要的,而你對「怪異錯誤」的陳述給人的印象是Tkinter是非確定性或flakey,不是。 Lambda並不神奇,不能解決神祕的錯誤。 – 2013-03-14 11:15:06

+0

@BryanOakley這不值得爭論,但它確實修復了我的錯誤。儘管我對Tkinter並不是很有經驗。如果使用錯誤,完美可靠的軟件仍然會產生「奇怪的錯誤」。 – ApproachingDarknessFish 2013-03-14 23:32:00

回答

0

在退出按鈕,您呼叫的Framequit()方法。取而代之,您需要在根元素上調用destroy()以正確完成主循環。

self.Quit = Button(self, text = "QUIT", command = self.master.destroy) 
+0

謝謝,我添加了一個root.destory()來完成主循環。 – Finix 2013-03-14 17:10:12