Python - 无法使用 Menu.quit 从 Tkinter 退出

adi*_*wat 2 user-interface tkinter python-3.x

我目前正在学习 python tkinter,并且有一个关于使用显式代码退出 tkinter 窗口的问题。到目前为止,这是我的代码(我已将其简化以仅关注问题)

from tkinter import *

def DoSomething():
    pass

root = Tk()
men = Menu(root)
root.config(menu = men)
submenu = Menu(men)
men.add_cascade(label = "File",menu = submenu)

submenu.add_command(label = "quit",command = Menu.quit)#Window does not close when user clicks "quit",
                                                       it just 
                                                       stays there non-responding

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

任何与此相关的帮助将不胜感激。谢谢

Ado*_*lus 5

在 python tkinter 中,你应该使用“destroy”方法来删除 tkinter 窗口,即:

submenu.add_command(label="quit",command=root.destroy)
Run Code Online (Sandbox Code Playgroud)

就你而言。

  • quit() 停止 TCL 解释器。在大多数情况下,这就是您想要的,因为您的 Tkinter 应用程序也会停止。例如,如果您从空闲状态调用您的应用程序,这可能是一个问题。idle 本身就是一个 Tkinker 应用程序,因此如果您在应用程序中调用 quit() 并且 TCL 解释器终止,idle 也会终止(或变得混乱)。destroy() 只是终止主循环并删除所有小部件。因此,如果您从另一个 Tkinter 应用程序调用您的应用程序,或者如果您有多个主循环,似乎会更安全。”摘自 http://www.daniweb.com/forums/thread66698.html (3认同)