1# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- 2# 3# $Id$ 4# 5# Tix Demonstration 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# 16import Tix 17 18def 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 102def doDestroy(): 103 global root 104 root.destroy() 105 106def 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 116if __name__ == '__main__': 117 root = Tix.Tk() 118 RunSample(root) 119 root.mainloop() 120