ref: 595fbddb1c9e152d9080d7b0faa301709fa6466d
dir: /sys/src/cmd/python/Demo/tix/samples/NoteBook.py/
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id: NoteBook.py 36560 2004-07-18 06:16:08Z tim_one $ # # Tix Demostration Program # # This sample program is structured in such a way so that it can be # executed from the Tix demo program "tixwidgets.py": it must have a # procedure called "RunSample". It should also have the "if" statment # at the end of this file so that it can be run as a standalone # program. # This file demonstrates the use of the tixNoteBook widget, which allows # you to lay out your interface using a "notebook" metaphore # import Tix def RunSample(w): global root root = w # We use these options to set the sizes of the subwidgets inside the # notebook, so that they are well-aligned on the screen. prefix = Tix.OptionName(w) if prefix: prefix = '*'+prefix else: prefix = '' w.option_add(prefix+'*TixControl*entry.width', 10) w.option_add(prefix+'*TixControl*label.width', 18) w.option_add(prefix+'*TixControl*label.anchor', Tix.E) w.option_add(prefix+'*TixNoteBook*tagPadX', 8) # Create the notebook widget and set its backpagecolor to gray. # Note that the -backpagecolor option belongs to the "nbframe" # subwidget. nb = Tix.NoteBook(w, name='nb', ipadx=6, ipady=6) nb['bg'] = 'gray' nb.nbframe['backpagecolor'] = 'gray' # Create the two tabs on the notebook. The -underline option # puts a underline on the first character of the labels of the tabs. # Keyboard accelerators will be defined automatically according # to the underlined character. nb.add('hard_disk', label="Hard Disk", underline=0) nb.add('network', label="Network", underline=0) nb.pack(expand=1, fill=Tix.BOTH, padx=5, pady=5 ,side=Tix.TOP) #---------------------------------------- # Create the first page #---------------------------------------- # Create two frames: one for the common buttons, one for the # other widgets # tab=nb.hard_disk f = Tix.Frame(tab) common = Tix.Frame(tab) f.pack(side=Tix.LEFT, padx=2, pady=2, fill=Tix.BOTH, expand=1) common.pack(side=Tix.RIGHT, padx=2, fill=Tix.Y) a = Tix.Control(f, value=12, label='Access time: ') w = Tix.Control(f, value=400, label='Write Throughput: ') r = Tix.Control(f, value=400, label='Read Throughput: ') c = Tix.Control(f, value=1021, label='Capacity: ') a.pack(side=Tix.TOP, padx=20, pady=2) w.pack(side=Tix.TOP, padx=20, pady=2) r.pack(side=Tix.TOP, padx=20, pady=2) c.pack(side=Tix.TOP, padx=20, pady=2) # Create the common buttons createCommonButtons(common) #---------------------------------------- # Create the second page #---------------------------------------- tab = nb.network f = Tix.Frame(tab) common = Tix.Frame(tab) f.pack(side=Tix.LEFT, padx=2, pady=2, fill=Tix.BOTH, expand=1) common.pack(side=Tix.RIGHT, padx=2, fill=Tix.Y) a = Tix.Control(f, value=12, label='Access time: ') w = Tix.Control(f, value=400, label='Write Throughput: ') r = Tix.Control(f, value=400, label='Read Throughput: ') c = Tix.Control(f, value=1021, label='Capacity: ') u = Tix.Control(f, value=10, label='Users: ') a.pack(side=Tix.TOP, padx=20, pady=2) w.pack(side=Tix.TOP, padx=20, pady=2) r.pack(side=Tix.TOP, padx=20, pady=2) c.pack(side=Tix.TOP, padx=20, pady=2) u.pack(side=Tix.TOP, padx=20, pady=2) createCommonButtons(common) def doDestroy(): global root root.destroy() def createCommonButtons(master): ok = Tix.Button(master, name='ok', text='OK', width=6, command=doDestroy) cancel = Tix.Button(master, name='cancel', text='Cancel', width=6, command=doDestroy) ok.pack(side=Tix.TOP, padx=2, pady=2) cancel.pack(side=Tix.TOP, padx=2, pady=2) if __name__ == '__main__': root = Tix.Tk() RunSample(root) root.mainloop()