|
1 # -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- |
|
2 # |
|
3 # $Id: Balloon.py 36560 2004-07-18 06:16:08Z tim_one $ |
|
4 # |
|
5 # Tix Demostration Program |
|
6 # |
|
7 # This sample program is structured in such a way so that it can be |
|
8 # executed from the Tix demo program "tixwidgets.py": it must have a |
|
9 # procedure called "RunSample". It should also have the "if" statment |
|
10 # at the end of this file so that it can be run as a standalone |
|
11 # program. |
|
12 |
|
13 # This file demonstrates the use of the tixBalloon widget, which provides |
|
14 # a interesting way to give help tips about elements in your user interface. |
|
15 # Your can display the help message in a "balloon" and a status bar widget. |
|
16 # |
|
17 |
|
18 import Tix |
|
19 |
|
20 TCL_ALL_EVENTS = 0 |
|
21 |
|
22 def RunSample (root): |
|
23 balloon = DemoBalloon(root) |
|
24 balloon.mainloop() |
|
25 balloon.destroy() |
|
26 |
|
27 class DemoBalloon: |
|
28 def __init__(self, w): |
|
29 self.root = w |
|
30 self.exit = -1 |
|
31 |
|
32 z = w.winfo_toplevel() |
|
33 z.wm_protocol("WM_DELETE_WINDOW", lambda self=self: self.quitcmd()) |
|
34 |
|
35 status = Tix.Label(w, width=40, relief=Tix.SUNKEN, bd=1) |
|
36 status.pack(side=Tix.BOTTOM, fill=Tix.Y, padx=2, pady=1) |
|
37 |
|
38 # Create two mysterious widgets that need balloon help |
|
39 button1 = Tix.Button(w, text='Something Unexpected', |
|
40 command=self.quitcmd) |
|
41 button2 = Tix.Button(w, text='Something Else Unexpected') |
|
42 button2['command'] = lambda w=button2: w.destroy() |
|
43 button1.pack(side=Tix.TOP, expand=1) |
|
44 button2.pack(side=Tix.TOP, expand=1) |
|
45 |
|
46 # Create the balloon widget and associate it with the widgets that we want |
|
47 # to provide tips for: |
|
48 b = Tix.Balloon(w, statusbar=status) |
|
49 |
|
50 b.bind_widget(button1, balloonmsg='Close Window', |
|
51 statusmsg='Press this button to close this window') |
|
52 b.bind_widget(button2, balloonmsg='Self-destruct button', |
|
53 statusmsg='Press this button and it will destroy itself') |
|
54 |
|
55 def quitcmd (self): |
|
56 self.exit = 0 |
|
57 |
|
58 def mainloop(self): |
|
59 foundEvent = 1 |
|
60 while self.exit < 0 and foundEvent > 0: |
|
61 foundEvent = self.root.tk.dooneevent(TCL_ALL_EVENTS) |
|
62 |
|
63 def destroy (self): |
|
64 self.root.destroy() |
|
65 |
|
66 if __name__ == '__main__': |
|
67 root = Tix.Tk() |
|
68 RunSample(root) |