annotate Demo/stdwin/RadioGroups.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents 73758db2f464
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4573
73758db2f464 /usr/local/bin/python -> /usr/bin/env python
Guido van Rossum <guido@python.org>
parents: 1120
diff changeset
1 #! /usr/bin/env python
752
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 # radiogroups.py
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 # Demonstrate multiple groups of radio buttons
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
6
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 import stdwin
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 from Buttons import *
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 from WindowParent import WindowParent, MainLoop
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 from HVSplit import HSplit, VSplit
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
11
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 def main():
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 # Create the widget hierarchy, top-down
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 # 1. Create the window
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 window = WindowParent().create('Radio Groups', (0, 0))
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 # 2. Create a horizontal split to contain the groups
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 topsplit = HSplit().create(window)
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 # 3. Create vertical splits, one for each group
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
26 group1 = VSplit().create(topsplit)
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 group2 = VSplit().create(topsplit)
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 group3 = VSplit().create(topsplit)
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 # 4. Create individual radio buttons, each in their own split
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 b11 = RadioButton().definetext(group1, 'Group 1 button 1')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 b12 = RadioButton().definetext(group1, 'Group 1 button 2')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 b13 = RadioButton().definetext(group1, 'Group 1 button 3')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 b21 = RadioButton().definetext(group2, 'Group 2 button 1')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 b22 = RadioButton().definetext(group2, 'Group 2 button 2')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 b23 = RadioButton().definetext(group2, 'Group 2 button 3')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 b31 = RadioButton().definetext(group3, 'Group 3 button 1')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 b32 = RadioButton().definetext(group3, 'Group 3 button 2')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 b33 = RadioButton().definetext(group3, 'Group 3 button 3')
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 # 5. Define the grouping for the radio buttons.
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 # Note: this doesn't have to be the same as the
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 # grouping is splits (although it usually is).
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 # Also set the 'hook' procedure for each button
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 list1 = [b11, b12, b13]
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 list2 = [b21, b22, b23]
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 list3 = [b31, b32, b33]
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 for b in list1:
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 b.group = list1
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 b.on_hook = myhook
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 for b in list2:
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 b.group = list2
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
58 b.on_hook = myhook
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 for b in list3:
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 b.group = list3
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 b.on_hook = myhook
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 # 6. Select a default button in each group
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
64 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
65 b11.select(1)
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 b22.select(1)
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 b33.select(1)
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
68 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
69 # 6. Realize the window
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
70 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
71 window.realize()
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
72 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 # 7. Dispatch events until the window is closed
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
74 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
75 MainLoop()
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
76 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
77 # 8. Report final selections
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
78 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
79 print 'You selected the following choices:'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
80 if b11.selected: print '1.1'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
81 if b12.selected: print '1.2'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
82 if b13.selected: print '1.3'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
83 if b21.selected: print '2.1'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
84 if b22.selected: print '2.2'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
85 if b23.selected: print '2.3'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
86 if b31.selected: print '3.1'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
87 if b32.selected: print '3.2'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
88 if b33.selected: print '3.3'
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
89
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
90
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
91 # My 'hook' procedure
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
92 # This is placed as 'hook' attribute on each button.
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
93 # The example just prints the title of the selected button.
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
94 #
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
95 def myhook(self):
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
96 print 'Selected:', self.text
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
97
8bd2194ad6f9 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
98 main()