single line scrollable output field
A scrolled field displays a single line of text. If the text is
too wide to display in the megawidget it can be scrolled to the
left and right by the user by dragging with the middle mouse
button. The text is also selectable by clicking or dragging with
the left mouse button.
It can be used instead of a Tkinter.Label widget when displaying
text of unknown width such as application status messages.
Options for this megawidget and its base
classes are described below.
Initialisation option. If the labelpos option is not None, this specifies the
distance between the label component and the rest of the
megawidget. The default is 0.
Initialisation option. Specifies where to place the label component. If not
None, it should be a concatenation of one or two of the
letters 'n', 's', 'e' and 'w'. The first letter
specifies on which side of the megawidget to place the label.
If a second letter is specified, it indicates where on that
side to place the label. For example, if labelpos is 'w',
the label is placed in the center of the left hand side; if
it is 'wn', the label is placed at the top of the left
hand side; if it is 'ws', the label is placed at the
bottom of the left hand side.
If None, a label component is not created. The default is None.
Initialisation option. The default is 'ew'.
Specifies the text to display in the scrolled field. The default is ''.
Components created by this megawidget and its base
classes are described below.
This is used to display the text and allows the user to scroll and
select the text. The state of this component is set to
'readonly' (or 'disabled' in earlier versions of Tcl/Tk which do
not support 'readonly'), so that the user is unable to modify the text. By default, this component is a Tkinter.Entry.
This acts as the body for the entire megawidget. Other components
are created as children of the hull to further specialise this
class. By default, this component is a Tkinter.Frame.
If the labelpos option is not None, this component is
created as a text label for the megawidget. See the
labelpos option for details. Note that to set, for example,
the text option of the label, you need to use the label_text
component option. By default, this component is a Tkinter.Label.
This megawidget has no methods of its own.
For a description of its inherited methods, see the
manual for its base class
In addition, methods from the
are forwarded by this megawidget to the
The image at the top of this manual is a snapshot
of the window (or part of the window) produced
by the following code.
def __init__(self, parent):
# Create and pack the ScrolledField.
self._field = Pmw.ScrolledField(parent, entry_width = 30,
entry_relief='groove', labelpos = 'n',
label_text = 'Scroll the field using the\nmiddle mouse button')
self._field.pack(fill = 'x', expand = 1, padx = 10, pady = 10)
# Create and pack a button to change the ScrolledField.
self._button = Tkinter.Button(parent, text = 'Change field',
command = self.execute)
self._button.pack(padx = 10, pady = 10)
self._index = 0
self._field.configure(text = lines[self._index % len(lines)])
self._index = self._index + 1
lines = (
'Alice was beginning to get very tired of sitting by her sister',
'on the bank, and of having nothing to do: once or twice she had',
'peeped into the book her sister was reading, but it had no',
'pictures or conversations in it, "and what is the use of a book,"',
'thought Alice "without pictures or conversation?"',
'Alice\'s Adventures in Wonderland',
Pmw 1.3 -
6 Aug 2007
Manual page last reviewed: 23 August 1998