Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / lib / python2.4 / site-packages / Pmw / Pmw_1_2 / doc / ButtonBox.html
<html>
<head>
<meta name="description" content="Pmw - a toolkit for building high-level compound widgets in Python">
<meta name="content" content="python, megawidget, mega widget, compound widget, gui, tkinter">
<title>Pmw.ButtonBox reference manual</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000ee"
vlink="551a8b" alink="ff0000">
<h1 ALIGN="CENTER">Pmw.ButtonBox</h1>
<center><IMG SRC=ButtonBox.gif ALT="" WIDTH=297 HEIGHT=65></center>
<dl>
<dt> <h3>Name</h3></dt><dd>
<p>Pmw.ButtonBox() -
manager megawidget for buttons
</p>
</dd>
<dt> <h3>Inherits</h3></dt><dd>
<a href="MegaWidget.html">Pmw.MegaWidget</a><br>
</dd>
<dt> <h3>Description</h3></dt><dd>
<p>
A button box is a container megawidget which manages a number of
buttons. One of these buttons may be specified as the default and
it will be displayed with the platform specific appearance for a
default button. The buttons may be laid out either horizontally
or vertically.</p>
<p></p>
</dd>
<dt> <h3>Options</h3></dt><dd>
Options for this megawidget and its base
classes are described below.<p></p>
<a name=option.labelmargin></a>
<dl><dt> <strong>labelmargin
</strong></dt><dd>
Initialisation option. If the <strong>labelpos</strong> option is not <strong>None</strong>, this specifies the
distance between the <strong>label</strong> component and the rest of the
megawidget. The default is <strong>0</strong>.</p>
</dd></dl>
<a name=option.labelpos></a>
<dl><dt> <strong>labelpos
</strong></dt><dd>
Initialisation option. Specifies where to place the <strong>label</strong> component. If not
<strong>None</strong>, it should be a concatenation of one or two of the
letters <strong>'n'</strong>, <strong>'s'</strong>, <strong>'e'</strong> and <strong>'w'</strong>. 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 <strong>labelpos</strong> is <strong>'w'</strong>,
the label is placed in the center of the left hand side; if
it is <strong>'wn'</strong>, the label is placed at the top of the left
hand side; if it is <strong>'ws'</strong>, the label is placed at the
bottom of the left hand side.</p>
<p> If <strong>None</strong>, a label component is not created. The default is <strong>None</strong>.</p>
</dd></dl>
<a name=option.orient></a>
<dl><dt> <strong>orient
</strong></dt><dd>
Initialisation option. Specifies the orientation of the button box. This may be
<strong>'horizontal'</strong> or <strong>'vertical'</strong>. The default is <strong>'horizontal'</strong>.</p>
</dd></dl>
<a name=option.padx></a>
<dl><dt> <strong>padx
</strong></dt><dd>
Initialisation option. Specifies a padding distance to leave between each button in the x
direction and also between the buttons and the outer edge of the
button box. The default is <strong>3</strong>.</p>
</dd></dl>
<a name=option.pady></a>
<dl><dt> <strong>pady
</strong></dt><dd>
Initialisation option. Specifies a padding distance to leave between each button in the y
direction and also between the buttons and the outer edge of the
button box. The default is <strong>3</strong>.</p>
</dd></dl>
</dd>
<dt> <h3>Components</h3></dt><dd>
Components created by this megawidget and its base
classes are described below.<p></p>
<a name=component.frame></a>
<dl><dt> <strong>frame
</strong></dt><dd>
If the <strong>label</strong> component has been created (that is, the <strong>labelpos</strong>
option is not <strong>None</strong>), the <strong>frame</strong> component is created to act as
the container of the buttons created by the <code>add()</code> and
<code>insert()</code> methods. If there is no <strong>label</strong> component, then no
<strong>frame</strong> component is created and the <strong>hull</strong> component acts as the
container. By default, this component is a Tkinter.Frame.</p>
</dd></dl>
<a name=component.hull></a>
<dl><dt> <strong>hull
</strong></dt><dd>
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.</p>
</dd></dl>
<a name=component.label></a>
<dl><dt> <strong>label
</strong></dt><dd>
If the <strong>labelpos</strong> option is not <strong>None</strong>, this component is
created as a text label for the megawidget. See the
<strong>labelpos</strong> option for details. Note that to set, for example,
the <strong>text</strong> option of the label, you need to use the <strong>label_text</strong>
component option. By default, this component is a Tkinter.Label.</p>
</dd></dl>
</dd>
<dt> <h3>Dynamic components</h3></dt><dd>
<p>
Button components are created dynamically by the <code>add()</code> and
<code>insert()</code> methods. By default, the buttons are of type
Tkinter.Button and are created with a component group of
<strong>Button</strong>.</p>
<p> </p>
</dd>
<a name=methods></a>
<dt> <h3>Methods</h3></dt><dd>
Only methods specific to this megawidget are described below.
For a description of its inherited methods, see the
manual for its base class
<strong><a href="MegaWidget.html#methods">Pmw.MegaWidget</a></strong>.
<p></p>
<a name=method.add></a>
<dl><dt> <strong>add</strong>(<em>componentName</em>, **<em>kw</em>)</dt><dd>
Add a button to the end of the button box as a component named
<em>componentName</em>. Any keyword arguments present will be passed to the
constructor when creating the button. If the <strong>text</strong> keyword
argument is not given, the <strong>text</strong> option of the button defaults to
<em>componentName</em>. The method returns the component widget.</p>
</dd></dl>
<a name=method.alignbuttons></a>
<dl><dt> <strong>alignbuttons</strong>(<em>when</em> = <strong>'later'</strong>)</dt><dd>
Set the widths of all the buttons to be the same as the width of
the widest button. If <em>when</em> is <strong>'later'</strong>, this will occur when the
interpreter next becomes idle, otherwise the resizing will occur
immediately.</p>
</dd></dl>
<a name=method.button></a>
<dl><dt> <strong>button</strong>(<em>buttonIndex</em>)</dt><dd>
Return the button specified by <em>buttonIndex</em>, which may have any
of the forms accepted by the <code>index()</code> method.</p>
</dd></dl>
<a name=method.delete></a>
<dl><dt> <strong>delete</strong>(<em>index</em>)</dt><dd>
Delete the button given by <em>index</em> from the button box. <em>index</em>
may have any of the forms accepted by the <code>index()</code> method.</p>
</dd></dl>
<a name=method.index></a>
<dl><dt> <strong>index</strong>(<em>index</em>, <em>forInsert</em> = <strong>0</strong>)</dt><dd>
Return the numerical index of the button corresponding to <em>index</em>.
This may be specified in any of the following forms:</p>
<dl><dt><em>name</em></dt><dd>Specifies the button named <em>name</em>.<p></p>
</dd>
<dt><em>number</em></dt><dd>Specifies the button numerically, where <strong>0</strong> corresponds to
the left (or top) button.<p></p>
</dd>
<dt><strong>Pmw.END</strong></dt><dd>Specifies the right (or bottom) button.<p></p>
</dd>
<dt><strong>Pmw.DEFAULT</strong></dt><dd>Specifies the current default button.<p></p>
</dd></dl>
<p> If <em>forInsert</em> is true, <strong>Pmw.END</strong> returns the number of buttons rather
than the index of the last button.</p>
</dd></dl>
<a name=method.insert></a>
<dl><dt> <strong>insert</strong>(<em>componentName</em>, <em>beforeComponent</em> = <strong>0</strong>, **<em>kw</em>)</dt><dd>
Add a button to the button box as a component named
<em>componentName</em>. The button is added just before the button
specified by <em>beforeComponent</em>, which may have any of the forms
accepted by the <code>index()</code> method. Any keyword arguments present
will be passed to the constructor when creating the button. If
the <strong>text</strong> keyword argument is not given, the <strong>text</strong> option of the
button defaults to <em>componentName</em>. To add a button to the end of
the button box, use <code>add()</code>. The method returns the component
widget.</p>
</dd></dl>
<a name=method.invoke></a>
<dl><dt> <strong>invoke</strong>(<em>index</em> = <strong>Pmw.DEFAULT</strong>, <em>noFlash</em> = <strong>0</strong>)</dt><dd>
Invoke the callback command associated with the button specified
by <em>index</em> and return the value returned by the callback.
Unless <em>noFlash</em> is true, flash the button to
indicate to the user that something happened.
<em>index</em> may have any of the forms accepted by the <code>index()</code> method.</p>
</dd></dl>
<a name=method.numbuttons></a>
<dl><dt> <strong>numbuttons</strong>()</dt><dd>
Return the number of buttons in the button box.</p>
</dd></dl>
<a name=method.setdefault></a>
<dl><dt> <strong>setdefault</strong>(<em>index</em>)</dt><dd>
Set the default button to the button given by <em>index</em>. This
causes the specified button to be displayed with the platform
specific appearance for a default button. If <em>index</em> is <strong>None</strong>,
there will be no default button. <em>index</em> may have any of the
forms accepted by the <code>index()</code> method.</p>
</dd></dl>
</dd>
<dt> <h3>Example</h3></dt><dd>
The image at the top of this manual is a snapshot
of the window (or part of the window) produced
by the following code.<p></p>
<pre>
class Demo:
def __init__(self, parent):
# Create and pack the ButtonBox.
self.buttonBox = Pmw.ButtonBox(parent,
labelpos = 'nw',
label_text = 'ButtonBox:',
frame_borderwidth = 2,
frame_relief = 'groove')
self.buttonBox.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
# Add some buttons to the ButtonBox.
self.buttonBox.add('OK', command = self.ok)
self.buttonBox.add('Apply', command = self.apply)
self.buttonBox.add('Cancel', command = self.cancel)
# Set the default button (the one executed when &lt;Return&gt; is hit).
self.buttonBox.setdefault('OK')
parent.bind('&lt;Return&gt;', self._processReturnKey)
parent.focus_set()
# Make all the buttons the same width.
self.buttonBox.alignbuttons()
def _processReturnKey(self, event):
self.buttonBox.invoke()
def ok(self):
print 'You clicked on OK'
def apply(self):
print 'You clicked on Apply'
def cancel(self):
print 'You clicked on Cancel'
</pre>
</dd>
</dl>
<center><P ALIGN="CENTER">
<IMG SRC = blue_line.gif ALT = "" WIDTH=320 HEIGHT=5>
</p></center>
<font size=-1>
<center><P ALIGN="CENTER">
Pmw 1.2 -
5 Aug 2003
- <a href="index.html">Home</a>
<br>Manual page last reviewed: 24 May 1998
</p></center>
</font>
</body>
</html>