equal
deleted
inserted
replaced
|
1 from Tkinter import * |
|
2 |
|
3 # This file shows how to trap the killing of a window |
|
4 # when the user uses window manager menus (typ. upper left hand corner |
|
5 # menu in the decoration border). |
|
6 |
|
7 |
|
8 ### ******* this isn't really called -- read the comments |
|
9 def my_delete_callback(): |
|
10 print "whoops -- tried to delete me!" |
|
11 |
|
12 class Test(Frame): |
|
13 def deathHandler(self, event): |
|
14 print self, "is now getting nuked. performing some save here...." |
|
15 |
|
16 def createWidgets(self): |
|
17 # a hello button |
|
18 self.hi_there = Button(self, text='Hello') |
|
19 self.hi_there.pack(side=LEFT) |
|
20 |
|
21 def __init__(self, master=None): |
|
22 Frame.__init__(self, master) |
|
23 Pack.config(self) |
|
24 self.createWidgets() |
|
25 |
|
26 ### |
|
27 ### PREVENT WM kills from happening |
|
28 ### |
|
29 |
|
30 # the docs would have you do this: |
|
31 |
|
32 # self.master.protocol("WM_DELETE_WINDOW", my_delete_callback) |
|
33 |
|
34 # unfortunately, some window managers will not send this request to a window. |
|
35 # the "protocol" function seems incapable of trapping these "aggressive" window kills. |
|
36 # this line of code catches everything, tho. The window is deleted, but you have a chance |
|
37 # of cleaning up first. |
|
38 self.bind_all("<Destroy>", self.deathHandler) |
|
39 |
|
40 |
|
41 test = Test() |
|
42 test.mainloop() |