Я пытаюсь предотвратить закрытие окна Toplevel в OSX, перехватывая событие оконного менеджера WM_DELETE_WINDOW.
#!/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». Если я нажимаю красную кнопку закрытия «x» на «win», чтобы закрыть окно, выводит «woof», а затем закрывается. Однако, если я запускаю этот же код в окнах, «win» остается открытым и продолжает печатать «woof» каждый раз, когда я нажимаю красную кнопку «x» закрытия.
Как я могу предотвратить закрытие окна Toplevel на OSX, когда я нажимаю красную кнопку закрытия "x"?