title
= 'Using Tk option database to configure Tk widgets'
# Import Pmw from this directory tree.
sys
.path
[:0] = ['../../..']
The Tk widgets contained in this
simple megawidget have been
configured using the Tk option
*DemoClass*Listbox.cursor is 'heart'
*DemoClass*Entry.cursor is 'hand1'
*DemoClass*background is 'pink'
*DemoClass*highlightBackground is 'green'
*DemoClass*foreground is 'blue'
class DemoClass(Pmw
.MegaWidget
):
def __init__(self
, parent
= None, **kw
):
# Define the megawidget options.
self
.defineoptions(kw
, optiondefs
)
# Initialise the base class (after defining the options).
Pmw
.MegaWidget
.__init
__(self
, parent
)
interior
= self
.interior()
listbox
= Tkinter
.Listbox(interior
, height
= 12, width
= 40)
listbox
.pack(fill
='both', expand
='yes')
for line
in string
.split(info
, '\n'):
listbox
.insert('end', line
)
entry
= Tkinter
.Entry(interior
)
entry
.insert(0, 'Hello, World!')
# Check keywords and initialise options.
def __init__(self
, parent
):
# Test Tk option database settings.
parent
.option_add('*DemoClass*Listbox.cursor', 'heart')
parent
.option_add('*DemoClass*Entry.cursor', 'hand1')
parent
.option_add('*DemoClass*background', 'pink')
parent
.option_add('*DemoClass*highlightBackground', 'green')
parent
.option_add('*DemoClass*foreground', 'blue')
# Create and pack the megawidget.
demo
.pack(fill
= 'both', expand
= 1)
######################################################################
# Create demo in root window for testing.
if __name__
== '__main__':
exitButton
= Tkinter
.Button(root
, text
= 'Exit', command
= root
.destroy
)
exitButton
.pack(side
= 'bottom')