diff options
author | Guido van Rossum <guido@python.org> | 1994-10-07 09:55:26 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1994-10-07 09:55:26 (GMT) |
commit | 35820f77e41a8a41a695e08c041eed5e2e2ff3ef (patch) | |
tree | 2bf45f05d7530067911726bf9a3e56b453d49db5 /Demo/tkinter/matt/killing-window-w-wm.py | |
parent | 884657af490e79e8e4a3038b439af9713cb64bc8 (diff) | |
download | cpython-35820f77e41a8a41a695e08c041eed5e2e2ff3ef.zip cpython-35820f77e41a8a41a695e08c041eed5e2e2ff3ef.tar.gz cpython-35820f77e41a8a41a695e08c041eed5e2e2ff3ef.tar.bz2 |
Matt's examples
Diffstat (limited to 'Demo/tkinter/matt/killing-window-w-wm.py')
-rw-r--r-- | Demo/tkinter/matt/killing-window-w-wm.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Demo/tkinter/matt/killing-window-w-wm.py b/Demo/tkinter/matt/killing-window-w-wm.py new file mode 100644 index 0000000..6ec3464 --- /dev/null +++ b/Demo/tkinter/matt/killing-window-w-wm.py @@ -0,0 +1,43 @@ +from Tkinter import * + +# This file shows how to trap the killing of a window +# when the user uses window manager menus (typ. upper left hand corner +# menu in the decoration border). + + +### ******* this isn't really called -- read the comments +def my_delete_callback(): + print "whoops -- tried to delete me!" + +class Test(Frame): + def deathHandler(self, event): + print self, "is now getting nuked. performing some save here...." + + def createWidgets(self): + # a hello button + self.hi_there = Button(self, {'text': 'Hello'}) + self.hi_there.pack({'side': 'left'}) + + + def __init__(self, master=None): + Frame.__init__(self, master) + Pack.config(self) + self.createWidgets() + + ### + ### PREVENT WM kills from happening + ### + + # the docs would have you do this: + +# self.master.protocol("WM_DELETE_WINDOW", my_delete_callback) + + # unfortunately, some window managers will not send this request to a window. + # the "protocol" function seems incapable of trapping these "aggressive" window kills. + # this line of code catches everything, tho. The window is deleted, but you have a chance + # of cleaning up first. + self.bind_all("<Destroy>", self.deathHandler) + + +test = Test() +test.mainloop() |