~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Demo/tkinter/matt/killing-window-w-wm.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
ImportĀ upstreamĀ versionĀ 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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()