Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | title = 'Pmw.ButtonBox demonstration' |
2 | ||
3 | # Import Pmw from this directory tree. | |
4 | import sys | |
5 | sys.path[:0] = ['../../..'] | |
6 | ||
7 | import Tkinter | |
8 | import Pmw | |
9 | ||
10 | class Demo: | |
11 | def __init__(self, parent): | |
12 | # Create and pack the ButtonBox. | |
13 | self.buttonBox = Pmw.ButtonBox(parent, | |
14 | labelpos = 'nw', | |
15 | label_text = 'ButtonBox:', | |
16 | frame_borderwidth = 2, | |
17 | frame_relief = 'groove') | |
18 | self.buttonBox.pack(fill = 'both', expand = 1, padx = 10, pady = 10) | |
19 | ||
20 | # Add some buttons to the ButtonBox. | |
21 | self.buttonBox.add('OK', command = self.ok) | |
22 | self.buttonBox.add('Apply', command = self.apply) | |
23 | self.buttonBox.add('Cancel', command = self.cancel) | |
24 | ||
25 | # Set the default button (the one executed when <Return> is hit). | |
26 | self.buttonBox.setdefault('OK') | |
27 | parent.bind('<Return>', self._processReturnKey) | |
28 | parent.focus_set() | |
29 | ||
30 | # Make all the buttons the same width. | |
31 | self.buttonBox.alignbuttons() | |
32 | ||
33 | def _processReturnKey(self, event): | |
34 | self.buttonBox.invoke() | |
35 | ||
36 | def ok(self): | |
37 | print 'You clicked on OK' | |
38 | ||
39 | def apply(self): | |
40 | print 'You clicked on Apply' | |
41 | ||
42 | def cancel(self): | |
43 | print 'You clicked on Cancel' | |
44 | ||
45 | ###################################################################### | |
46 | ||
47 | # Create demo in root window for testing. | |
48 | if __name__ == '__main__': | |
49 | root = Tkinter.Tk() | |
50 | Pmw.initialise(root) | |
51 | root.title(title) | |
52 | ||
53 | exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) | |
54 | exitButton.pack(side = 'bottom') | |
55 | widget = Demo(root) | |
56 | root.mainloop() |