如何在mac上结束Tkinter python模块,这样我就不必在程序完成后强制退出python启动器?

时间:2012-02-26 18:57:25

标签: python

这是我的代码:

from Tkinter import *

app = Tk()

app.title('example')

app.geometry('400x300+200+200')

b = Button(app, text = "quit", command = app.quit)

b.pack()

app.mainloop()

当我运行这个python启动器弹出时,当我关闭窗口或按退出按钮时,窗口关闭,python空闲说完成但python启动器变得没有响应,我必须强制退出它以便python启动器退出并且从码头上消失。

是否有必须使用的命令来正确退出代码?

3 个答案:

答案 0 :(得分:0)

您正在寻找sys.exit()

这是一个有效的例子

from tkinter import *
import sys
class YourApp(Tk):
    def quit_and_close(self):
            app.quit()
            sys.exit()


app = YourApp()

app.title('example')

app.geometry('400x300+200+200')

b = Button(app, text = "quit", command = app.quit_and_close)

b.pack()

app.mainloop()

答案 1 :(得分:0)

我一直在寻找,似乎这可能是一个已知的错误。

我得到的最好的答复是:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    MsgBox "OK"
End Sub

哪个允许您使用小x来关闭窗口。这将在spyder控制台窗口中结束该过程,但不会在mac上的应用程序栏中结束该过程。仍然必须强行退出。

我试图制作一个像这样的函数来破坏窗口并使用sys退出,但这只会再次冻结。

 window = tk.Tk()
 window.protocol("WM_DELETE_WINDOW", window.destroy)

答案 2 :(得分:0)

尝试使用终端而不是IDE。我发现IDE非常挑剔,并且使用Terminal可以正确退出并退出Python启动器。