Mac上tkinter出口的绑定或协议



我的tkinter应用程序通常在Mac上运行,在退出时需要保存一些设置。如果单击窗口的关闭框退出应用程序,则以下操作非常有效:

root.protocol("WM_DELETE_WINDOW", saveAndQuit)

然而,在Mac上通过键入Command-Q退出更为自然,而此协议绑定并没有捕捉到这一点。

有没有一种有效的方法来绑定";该应用程序即将退出";不管退出的确切方式是什么?

感谢JRiggles的成功指针。以下是起作用的最小代码:

menubar = tk.Menu(root)
mac_app_menu = tk.Menu(menubar , name = "apple")
menubar.add_cascade(menu = mac_app_menu) 
root.createcommand("tk::mac::Quit" , save_and_quit)

我倾向于认为root.bind('<Destroy>', ...)是tkinter方面的疏忽并不能完全捕获退出程序的所有方法。

顺便说一句,整件事有点做作,因为它实际上并没有像看上去那样改变菜单栏上的内容,它只是改变了这个特定命令的作用。

最新更新