Pmw.ScrolledField

Name

Pmw.ScrolledField() - single line scrollable output field

Inherits

Pmw.MegaWidget

Description

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

Options for this megawidget and its base classes are described below.

labelmargin
Initialisation option. The default is 0.

labelpos
Initialisation option. The default is None.

sticky
Initialisation option. The default is 'ew'.

text
Specifies the text to display in the scrolled field. The default is ''.

Components

Components created by this megawidget and its base classes are described below.

entry
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.

hull
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.

label
By default, this component is a Tkinter.Label.

Methods

This megawidget has no methods of its own. For a description of its inherited methods, see the manual for its base class Pmw.MegaWidget. In addition, methods from the Tkinter.Entry class are forwarded by this megawidget to the entry component.

Example

The image at the top of this manual is a snapshot of the window (or part of the window) produced by the following code.

class Demo:
    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.execute()

    def execute(self):
        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',
  'Lewis Carroll',
)

Pmw 2.0.0 - 29 Mar 2014 - Home
Manual page last reviewed: 23 August 1998