我试图通过截取窗口管理器WM_DELETE_WINDOW事件来阻止Toplevel窗口在OSX中关闭。
#!/usr/bin/env python
from Tkinter import *
def speak():
print "woof"
root = Tk()
root.title("root")
win = Toplevel()
win.title("win")
win.protocol('WM_DELETE_WINDOW', speak)
root.mainloop()
当我运行这个时,我得到两个名为“root”和“win”的弹出窗口。如果我点击“win”上的红色“x”关闭按钮关闭窗口,打印“woof”然后关闭。但是,如果我在Windows上运行相同的代码“win”保持打开状态,并且每次单击红色的“x”关闭按钮时都会保持打印“woof”。
当我点击红色的“x”关闭按钮时,如何让Toplevel窗口在OSX上关闭?
答案 0 :(得分:2)
查看对Python Issue 12584的回复。它似乎是苹果随OS X 10.6发布的非常有缺陷的Cocoa Tcl / Tk 8.5中的一个错误。如果您使用的是Tkinter或使用Tkinter的任何东西,比如IDLE,请不要在10.6中使用它或Apple提供的Pythons。更多信息here。