Pmw.Group

Name

Pmw.Group() - frame with ring border and tag

Inherits

Pmw.MegaWidget

Description

This megawidget consists of an interior frame with an exterior ring border and an identifying tag displayed over the top edge of the ring. The programmer can create other widgets within the interior frame.

Options

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

collapsedheight
Initialisation option. The distance from the bottom of the tag to the bottom of the ring when the groupchildsite is collapsed. The default is 6.

collapsedwidth
Initialisation option. When the groupchildsite is collapsed, the width of the ring is set to the width of the tag plus collapsedwidth. The default is 20.

tagindent
Initialisation option. The distance from the left edge of the ring to the left side of the tag component. The default is 10.

Components

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

groupchildsite
The frame which can contain other widgets to be grouped. By default, this component is a tkinter.Frame.

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.

ring
This component acts as the enclosing ring around the groupchildsite. The default borderwidth is 2 and the default relief is 'groove'. By default, this component is a tkinter.Frame.

tag
The identifying tag displayed over the top edge of the enclosing ring. If the pyclass for this component is None, (ie: tag_pyclass = None, then no tag component is created. By default, this component is a tkinter.Label.

Methods

Only methods specific to this megawidget are described below. For a description of its inherited methods, see the manual for its base class Pmw.MegaWidget.

collapse()
Do not display the groupchildsite component.

expand()
Display the groupchildsite component.

interior()
Return the frame within which the programmer may create widgets. This is the same as component('groupchildsite').

toggle()
Display the groupchildsite component if it is currently hidden and hide it if it is currently displayed.

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 Groups.
        w = Pmw.Group(parent, tag_text='label')
        w.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
        cw = tkinter.Label(w.interior(),
                text = 'A group with the\ndefault Label tag')
        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')

        w = Pmw.Group(parent, tag_pyclass = None)
        w.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
        cw = tkinter.Label(w.interior(), text = 'A group\nwithout a tag')
        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')

        radiogroups = []
        self.var = tkinter.IntVar()
        self.var.set(0)
        radioframe = tkinter.Frame(parent)
        w = Pmw.Group(radioframe,
                tag_pyclass = tkinter.Radiobutton,
                tag_text='radiobutton 1',
                tag_value = 0,
                tag_variable = self.var)
        w.pack(fill = 'both', expand = 1, side='left')
        cw = tkinter.Frame(w.interior(),width=200,height=20)
        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
        radiogroups.append(w)

        w = Pmw.Group(radioframe,
                tag_pyclass = tkinter.Radiobutton,
                tag_text='radiobutton 2',
                tag_font = Pmw.logicalfont('Helvetica', 4),
                tag_value = 1,
                tag_variable = self.var)
        w.pack(fill = 'both', expand = 1, side='left')
        cw = tkinter.Frame(w.interior(),width=200,height=20)
        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
        radiogroups.append(w)
        radioframe.pack(padx = 6, pady = 6, expand='yes', fill='both')
        Pmw.aligngrouptags(radiogroups)

        w = Pmw.Group(parent,
                tag_pyclass = tkinter.Checkbutton,
                tag_text='checkbutton',
                tag_foreground='blue')
        w.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
        cw = tkinter.Frame(w.interior(),width=150,height=20)
        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')

        w = Pmw.Group(parent,
                collapsedwidth = 70,
                tag_pyclass = tkinter.Button,
                tag_text='Show/Hide')
        w.configure(tag_command = w.toggle)
        w.pack(expand = 0, padx = 6, pady = 6)
        cw = tkinter.Label(w.interior(),
                background = 'aliceblue',
                text = 'Now you see me.\nNow you don\'t.'
        )
        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')

Pmw 2.1 - 31 Dec 2020 - Home
Manual page last reviewed: 15 November 1998