|
1 # -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- |
|
2 # |
|
3 # $Id: NoteBook.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 tixNoteBook widget, which allows |
|
14 # you to lay out your interface using a "notebook" metaphore |
|
15 # |
|
16 import Tix |
|
17 |
|
18 def RunSample(w): |
|
19 global root |
|
20 root = w |
|
21 |
|
22 # We use these options to set the sizes of the subwidgets inside the |
|
23 # notebook, so that they are well-aligned on the screen. |
|
24 prefix = Tix.OptionName(w) |
|
25 if prefix: |
|
26 prefix = '*'+prefix |
|
27 else: |
|
28 prefix = '' |
|
29 w.option_add(prefix+'*TixControl*entry.width', 10) |
|
30 w.option_add(prefix+'*TixControl*label.width', 18) |
|
31 w.option_add(prefix+'*TixControl*label.anchor', Tix.E) |
|
32 w.option_add(prefix+'*TixNoteBook*tagPadX', 8) |
|
33 |
|
34 # Create the notebook widget and set its backpagecolor to gray. |
|
35 # Note that the -backpagecolor option belongs to the "nbframe" |
|
36 # subwidget. |
|
37 nb = Tix.NoteBook(w, name='nb', ipadx=6, ipady=6) |
|
38 nb['bg'] = 'gray' |
|
39 nb.nbframe['backpagecolor'] = 'gray' |
|
40 |
|
41 # Create the two tabs on the notebook. The -underline option |
|
42 # puts a underline on the first character of the labels of the tabs. |
|
43 # Keyboard accelerators will be defined automatically according |
|
44 # to the underlined character. |
|
45 nb.add('hard_disk', label="Hard Disk", underline=0) |
|
46 nb.add('network', label="Network", underline=0) |
|
47 |
|
48 nb.pack(expand=1, fill=Tix.BOTH, padx=5, pady=5 ,side=Tix.TOP) |
|
49 |
|
50 #---------------------------------------- |
|
51 # Create the first page |
|
52 #---------------------------------------- |
|
53 # Create two frames: one for the common buttons, one for the |
|
54 # other widgets |
|
55 # |
|
56 tab=nb.hard_disk |
|
57 f = Tix.Frame(tab) |
|
58 common = Tix.Frame(tab) |
|
59 |
|
60 f.pack(side=Tix.LEFT, padx=2, pady=2, fill=Tix.BOTH, expand=1) |
|
61 common.pack(side=Tix.RIGHT, padx=2, fill=Tix.Y) |
|
62 |
|
63 a = Tix.Control(f, value=12, label='Access time: ') |
|
64 w = Tix.Control(f, value=400, label='Write Throughput: ') |
|
65 r = Tix.Control(f, value=400, label='Read Throughput: ') |
|
66 c = Tix.Control(f, value=1021, label='Capacity: ') |
|
67 |
|
68 a.pack(side=Tix.TOP, padx=20, pady=2) |
|
69 w.pack(side=Tix.TOP, padx=20, pady=2) |
|
70 r.pack(side=Tix.TOP, padx=20, pady=2) |
|
71 c.pack(side=Tix.TOP, padx=20, pady=2) |
|
72 |
|
73 # Create the common buttons |
|
74 createCommonButtons(common) |
|
75 |
|
76 #---------------------------------------- |
|
77 # Create the second page |
|
78 #---------------------------------------- |
|
79 |
|
80 tab = nb.network |
|
81 |
|
82 f = Tix.Frame(tab) |
|
83 common = Tix.Frame(tab) |
|
84 |
|
85 f.pack(side=Tix.LEFT, padx=2, pady=2, fill=Tix.BOTH, expand=1) |
|
86 common.pack(side=Tix.RIGHT, padx=2, fill=Tix.Y) |
|
87 |
|
88 a = Tix.Control(f, value=12, label='Access time: ') |
|
89 w = Tix.Control(f, value=400, label='Write Throughput: ') |
|
90 r = Tix.Control(f, value=400, label='Read Throughput: ') |
|
91 c = Tix.Control(f, value=1021, label='Capacity: ') |
|
92 u = Tix.Control(f, value=10, label='Users: ') |
|
93 |
|
94 a.pack(side=Tix.TOP, padx=20, pady=2) |
|
95 w.pack(side=Tix.TOP, padx=20, pady=2) |
|
96 r.pack(side=Tix.TOP, padx=20, pady=2) |
|
97 c.pack(side=Tix.TOP, padx=20, pady=2) |
|
98 u.pack(side=Tix.TOP, padx=20, pady=2) |
|
99 |
|
100 createCommonButtons(common) |
|
101 |
|
102 def doDestroy(): |
|
103 global root |
|
104 root.destroy() |
|
105 |
|
106 def createCommonButtons(master): |
|
107 ok = Tix.Button(master, name='ok', text='OK', width=6, |
|
108 command=doDestroy) |
|
109 cancel = Tix.Button(master, name='cancel', |
|
110 text='Cancel', width=6, |
|
111 command=doDestroy) |
|
112 |
|
113 ok.pack(side=Tix.TOP, padx=2, pady=2) |
|
114 cancel.pack(side=Tix.TOP, padx=2, pady=2) |
|
115 |
|
116 if __name__ == '__main__': |
|
117 root = Tix.Tk() |
|
118 RunSample(root) |
|
119 root.mainloop() |