title
= 'Pmw.ScrolledText demonstration'
# Import Pmw from this directory tree.
sys
.path
[:0] = ['../../..']
def __init__(self
, parent
):
# Create the ScrolledText.
self
.st
= Pmw
.ScrolledText(parent
,
label_text
='ScrolledText.py',
# Create a group widget to contain the scrollmode options.
w
= Pmw
.Group(parent
, tag_text
='Scroll mode')
w
.pack(side
= 'bottom', padx
= 5, pady
= 5)
hmode
= Pmw
.OptionMenu(w
.interior(),
label_text
= 'Horizontal:',
items
= ['none', 'static', 'dynamic'],
command
= self
.sethscrollmode
,
hmode
.pack(side
= 'left', padx
= 5, pady
= 5)
vmode
= Pmw
.OptionMenu(w
.interior(),
label_text
= 'Vertical:',
items
= ['none', 'static', 'dynamic'],
command
= self
.setvscrollmode
,
vmode
.pack(side
= 'left', padx
= 5, pady
= 5)
buttonBox
= Pmw
.ButtonBox(parent
)
buttonBox
.pack(side
= 'bottom')
buttonBox
.add('yview', text
= 'Show\nyview', command
= self
.showYView
)
buttonBox
.add('scroll', text
= 'Page\ndown', command
= self
.pageDown
)
buttonBox
.add('center', text
= 'Center', command
= self
.centerPage
)
# Pack this last so that the buttons do not get shrunk when
self
.st
.pack(padx
= 5, pady
= 5, fill
= 'both', expand
= 1)
# Read this file into the text widget.
head
, tail
= os
.path
.split(sys
.argv
[0])
self
.st
.importfile(os
.path
.join(head
,'ScrolledText.py'))
self
.st
.insert('end', '\nThis demonstrates how to\n' +
'add a window to a text widget: ')
counter
= Pmw
.Counter(self
.st
.component('text'),
self
.st
.window_create('end', window
= counter
)
def sethscrollmode(self
, tag
):
self
.st
.configure(hscrollmode
= tag
)
def setvscrollmode(self
, tag
):
self
.st
.configure(vscrollmode
= tag
)
self
.st
.yview('scroll', 1, 'page')
top
, bottom
= self
.st
.yview()
self
.st
.yview('moveto', middle
)
######################################################################
# Create demo in root window for testing.
if __name__
== '__main__':
exitButton
= Tkinter
.Button(root
, text
= 'Exit', command
= root
.destroy
)
exitButton
.pack(side
= 'bottom')