| Line | |
|---|
| 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()
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.