NoteBook.py 4.19 KB
Newer Older
1
# -*-mode: python; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
2
#
3 4 5 6 7
# $Id$
#
# Tix Demostration Program
#
# 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 10 11 12 13 14 15
# 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
#
16
import tkinter.tix
17 18 19 20 21 22 23

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.
24
    prefix = tkinter.tix.OptionName(w)
25
    if prefix:
26
        prefix = '*'+prefix
27
    else:
28
        prefix = ''
29 30
    w.option_add(prefix+'*TixControl*entry.width', 10)
    w.option_add(prefix+'*TixControl*label.width', 18)
31
    w.option_add(prefix+'*TixControl*label.anchor', tkinter.tix.E)
32 33 34 35 36
    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.
37
    nb = tkinter.tix.NoteBook(w, name='nb', ipadx=6, ipady=6)
38 39
    nb['bg'] = 'gray'
    nb.nbframe['backpagecolor'] = 'gray'
40

41 42 43
    # 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
44
    # to the underlined character.
45 46
    nb.add('hard_disk', label="Hard Disk", underline=0)
    nb.add('network', label="Network", underline=0)
47

48
    nb.pack(expand=1, fill=tkinter.tix.BOTH, padx=5, pady=5 ,side=tkinter.tix.TOP)
49 50 51 52 53 54 55 56

    #----------------------------------------
    # Create the first page
    #----------------------------------------
    # Create two frames: one for the common buttons, one for the
    # other widgets
    #
    tab=nb.hard_disk
57 58
    f = tkinter.tix.Frame(tab)
    common = tkinter.tix.Frame(tab)
59

60 61
    f.pack(side=tkinter.tix.LEFT, padx=2, pady=2, fill=tkinter.tix.BOTH, expand=1)
    common.pack(side=tkinter.tix.RIGHT, padx=2, fill=tkinter.tix.Y)
62

63 64 65 66
    a = tkinter.tix.Control(f, value=12,   label='Access time: ')
    w = tkinter.tix.Control(f, value=400,  label='Write Throughput: ')
    r = tkinter.tix.Control(f, value=400,  label='Read Throughput: ')
    c = tkinter.tix.Control(f, value=1021, label='Capacity: ')
67

68 69 70 71
    a.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    w.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    r.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    c.pack(side=tkinter.tix.TOP, padx=20, pady=2)
72

73 74
    # Create the common buttons
    createCommonButtons(common)
75

76
    #----------------------------------------
77
    # Create the second page
78
    #----------------------------------------
79

80 81
    tab = nb.network

82 83
    f = tkinter.tix.Frame(tab)
    common = tkinter.tix.Frame(tab)
84

85 86
    f.pack(side=tkinter.tix.LEFT, padx=2, pady=2, fill=tkinter.tix.BOTH, expand=1)
    common.pack(side=tkinter.tix.RIGHT, padx=2, fill=tkinter.tix.Y)
87

88 89 90 91 92
    a = tkinter.tix.Control(f, value=12,   label='Access time: ')
    w = tkinter.tix.Control(f, value=400,  label='Write Throughput: ')
    r = tkinter.tix.Control(f, value=400,  label='Read Throughput: ')
    c = tkinter.tix.Control(f, value=1021, label='Capacity: ')
    u = tkinter.tix.Control(f, value=10,   label='Users: ')
93

94 95 96 97 98
    a.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    w.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    r.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    c.pack(side=tkinter.tix.TOP, padx=20, pady=2)
    u.pack(side=tkinter.tix.TOP, padx=20, pady=2)
99

100
    createCommonButtons(common)
101

102 103 104 105 106
def doDestroy():
    global root
    root.destroy()

def createCommonButtons(master):
107
    ok = tkinter.tix.Button(master, name='ok', text='OK', width=6,
108
                command=doDestroy)
109
    cancel = tkinter.tix.Button(master, name='cancel',
110 111 112
                    text='Cancel', width=6,
                    command=doDestroy)

113 114
    ok.pack(side=tkinter.tix.TOP, padx=2, pady=2)
    cancel.pack(side=tkinter.tix.TOP, padx=2, pady=2)
115 116

if __name__ == '__main__':
117
    root = tkinter.tix.Tk()
118 119
    RunSample(root)
    root.mainloop()