Pmw.ScrolledText() - text widget with optional scrollbars
This megawidget consists of a standard text widget with optional scrollbars which can be used to scroll the text widget. The scrollbars can be dynamic, which means that a scrollbar will only be displayed if it is necessary. That is, if the text widget does not contain enough text (either horizontally or vertically), the scrollbar will be automatically hidden.
If None, a label component is not created. The default is None.
Otherwise, the size of the megawidget is determined by the width and height of the text component, along with the size and/or existence of the other components, such as the label, the scrollbars and the scrollmargin option. All these affect the overall size of the megawidget. The default is 0.
bbox()
method. Without this explicit forwarding, the bbox()
method (aliased to grid_bbox()
) of the hull would be invoked,
which is probably not what the programmer intended.
get()
method of the text component,
except that if first is None the entire
contents of the text widget are returned.
class Demo: def __init__(self, parent): # Create the ScrolledText. self.st = Pmw.ScrolledText(parent, borderframe = 1, labelpos = 'n', label_text='ScrolledText.py', usehullsize = 1, hull_width = 400, hull_height = 300, text_padx = 10, text_pady = 10, text_wrap='none' ) # 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(), labelpos = 'w', label_text = 'Horizontal:', items = ['none', 'static', 'dynamic'], command = self.sethscrollmode, menubutton_width = 8, ) hmode.pack(side = 'left', padx = 5, pady = 5) hmode.invoke('dynamic') vmode = Pmw.OptionMenu(w.interior(), labelpos = 'w', label_text = 'Vertical:', items = ['none', 'static', 'dynamic'], command = self.setvscrollmode, menubutton_width = 8, ) vmode.pack(side = 'left', padx = 5, pady = 5) vmode.invoke('dynamic') # Pack this last so that the buttons do not get shrunk when # the window is resized. 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'), entryfield_value = 9999) 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)
Home.
Pmw 0.8.5
Maintainer
gregm@iname.com.
9 Feb 2001
Manual page last reviewed: 30 August 1998