|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.trolltech.qt.QSignalEmitter
com.trolltech.qt.QtJambiObject
com.trolltech.qt.core.QObject
com.trolltech.qt.gui.QWidget
com.trolltech.qt.gui.QAbstractButton
com.trolltech.qt.gui.QPushButton
public class QPushButton
The QPushButton
widget provides a command button. The push button, or command button, is perhaps the most commonly used widget in any graphical user interface. Push (click) a button to command the computer to perform some action, or to answer a question. Typical buttons are OK, Apply, Cancel, Close, Yes, No and Help.
A command button is rectangular and typically displays a text label describing its action. A shortcut key can be specified by preceding the preferred character with an ampersand in the text. For example:
QPushButton button = new QPushButton("Download");In this example the shortcut is Alt+D. See the
QShortcut
documentation for details (to display an actual ampersand, use '&&'). Push buttons display a textual label, and optionally a small icon. These can be set using the constructors and changed later using setText() and setIcon(). If the button is disabled the appearance of the text and icon will be manipulated with respect to the GUI style to make the button look "disabled".
A push button emits the signal clicked()
when it is activated by the mouse, the Spacebar or by a keyboard shortcut. Connect to this signal to perform the button's action. Push buttons also provide less commonly used signals, for example, pressed()
and released()
.
Command buttons in dialogs are by default auto-default buttons, i.e. they become the default push button automatically when they receive the keyboard input focus. A default button is a push button that is activated when the user presses the Enter or Return key in a dialog. You can change this with setAutoDefault()
. Note that auto-default buttons reserve a little extra space which is necessary to draw a default-button indicator. If you do not want this space around your buttons, call setAutoDefault
(false).
Being so central, the button widget has grown to accommodate a great many variations in the past decade. The Microsoft style guide now shows about ten different states of Windows push buttons and the text implies that there are dozens more when all the combinations of features are taken into consideration.
The most important modes or states are:
QFileDialog
) are not command buttons, but tool buttons. Qt provides a special class (QToolButton
) for these buttons. If you need toggle behavior (see setCheckable()) or a button that auto-repeats the activation signal when being pushed down like the arrows in a scroll bar (see setAutoRepeat()), a command button is probably not what you want. When in doubt, use a tool button.
A variation of a command button is a menu button. These provide not just one command, but several, since when they are clicked they pop up a menu of options. Use the method setMenu()
to associate a popup menu with a push button.
Other classes of buttons are option buttons (see QRadioButton
) and check boxes (see QCheckBox
).
![]() | A push button shown in the Macintosh widget style. Note that when a button's width becomes smaller than 50 or its height becomes smaller than 30, the button's corners are changed from round to square. Use the setMinimumSize() function to prevent this behavior. |
![]() | A push button shown in the Windows XP widget style. |
![]() | A push button shown in the Plastique widget style. |
QAbstractButton
base class provides most of the modes and other API, and QPushButton
provides GUI logic. See QAbstractButton
for more information about the API. QToolButton
, QRadioButton
, QCheckBox
, and GUI Design Handbook: Push Button.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class com.trolltech.qt.gui.QWidget |
---|
QWidget.RenderFlag, QWidget.RenderFlags |
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter |
---|
QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9 |
Field Summary |
---|
Fields inherited from class com.trolltech.qt.gui.QAbstractButton |
---|
clicked, pressed, released, toggled |
Fields inherited from class com.trolltech.qt.gui.QWidget |
---|
customContextMenuRequested |
Constructor Summary | |
---|---|
QPushButton()
Constructs a push button with no text and a parent. |
|
QPushButton(QIcon icon,
java.lang.String text)
Constructs a push button with an icon and a text, and a parent. |
|
QPushButton(QIcon icon,
java.lang.String text,
QWidget parent)
Constructs a push button with an icon and a text, and a parent. |
|
QPushButton(QWidget parent)
Constructs a push button with no text and a parent. |
|
QPushButton(java.lang.String text)
Constructs a push button with the parent parent and the text text. |
|
QPushButton(java.lang.String text,
QWidget parent)
Constructs a push button with the parent parent and the text text. |
Method Summary | |
---|---|
boolean |
autoDefault()
This property holds whether the push button is an auto default button. |
static QPushButton |
fromNativePointer(QNativePointer nativePointer)
|
protected void |
initStyleOption(QStyleOptionButton option)
Initialize option with the values from this QPushButton. |
boolean |
isDefault()
This property holds whether the push button is the default button. |
boolean |
isFlat()
This property holds whether the button border is raised. |
QMenu |
menu()
Returns the button's associated popup menu or 0 if no popup menu has been set. |
void |
setAutoDefault(boolean arg__1)
This property holds whether the push button is an auto default button. |
void |
setDefault(boolean arg__1)
This property holds whether the push button is the default button. |
void |
setFlat(boolean arg__1)
This property holds whether the button border is raised. |
void |
setMenu(QMenu menu)
Associates the popup menu menu with this push button. |
void |
showMenu()
Shows (pops up) the associated popup menu. |
Methods inherited from class com.trolltech.qt.gui.QAbstractButton |
---|
animateClick, animateClick, autoExclusive, autoRepeat, autoRepeatDelay, autoRepeatInterval, checkStateSet, click, group, hitButton, icon, iconSize, isCheckable, isChecked, isDown, nextCheckState, setAutoExclusive, setAutoRepeat, setAutoRepeatDelay, setAutoRepeatInterval, setCheckable, setChecked, setDown, setIcon, setIconSize, setShortcut, setShortcut, setShortcut, setText, shortcut, text, toggle |
Methods inherited from class com.trolltech.qt.core.QObject |
---|
childEvent, children, connectSlotsByName, customEvent, disposeLater, dumpObjectInfo, dumpObjectTree, dynamicPropertyNames, event, eventFilter, findChild, findChild, findChild, findChildren, findChildren, findChildren, findChildren, indexOfProperty, installEventFilter, isWidgetType, killTimer, moveToThread, objectName, parent, properties, property, removeEventFilter, setObjectName, setParent, setProperty, startTimer, timerEvent, toString, userProperty |
Methods inherited from class com.trolltech.qt.QtJambiObject |
---|
dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr |
Methods inherited from class com.trolltech.qt.QSignalEmitter |
---|
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread |
Methods inherited from class java.lang.Object |
---|
clone, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.trolltech.qt.QtJambiInterface |
---|
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership |
Constructor Detail |
---|
public QPushButton()
public QPushButton(QWidget parent)
public QPushButton(QIcon icon, java.lang.String text)
Note that you can also pass a QPixmap
object as an icon (thanks to the implicit type conversion provided by C++).
public QPushButton(QIcon icon, java.lang.String text, QWidget parent)
Note that you can also pass a QPixmap
object as an icon (thanks to the implicit type conversion provided by C++).
public QPushButton(java.lang.String text)
public QPushButton(java.lang.String text, QWidget parent)
Method Detail |
---|
public final boolean autoDefault()
In some GUI styles a default button is drawn with an extra frame around it, up to 3 pixels or more. Qt automatically keeps this space free around auto-default buttons, i.e. auto-default buttons may have a slightly larger size hint.
This property's default is true for buttons that have a QDialog
parent; otherwise it defaults to false.
See the default
property for details of how default
and auto-default interact.
public final boolean isDefault()
A button with this property set to true (i.e., the dialog's default button,) will automatically be pressed when the user presses enter, with one exception: if an autoDefault button currently has focus, the autoDefault
button is pressed. When the dialog has autoDefault
buttons but no default button, pressing enter will press either the autoDefault
button that currently has focus, or if no button has focus, the next autoDefault
button in the focus chain.
In a dialog, only one push button at a time can be the default button. This button is then displayed with an additional frame (depending on the GUI style).
The default button behavior is provided only in dialogs. Buttons can always be clicked from the keyboard by pressing Spacebar when the button has focus.
If the default property is set to false on the current default button while the dialog is visible, a new default will automatically be assigned the next time a pushbutton in the dialog receives focus.
This property's default is false.
public final boolean isFlat()
QPalette::Button
brush.
public final QMenu menu()
setMenu()
.
public final void setAutoDefault(boolean arg__1)
In some GUI styles a default button is drawn with an extra frame around it, up to 3 pixels or more. Qt automatically keeps this space free around auto-default buttons, i.e. auto-default buttons may have a slightly larger size hint.
This property's default is true for buttons that have a QDialog
parent; otherwise it defaults to false.
See the default
property for details of how default
and auto-default interact.
public final void setDefault(boolean arg__1)
A button with this property set to true (i.e., the dialog's default button,) will automatically be pressed when the user presses enter, with one exception: if an autoDefault button currently has focus, the autoDefault
button is pressed. When the dialog has autoDefault
buttons but no default button, pressing enter will press either the autoDefault
button that currently has focus, or if no button has focus, the next autoDefault
button in the focus chain.
In a dialog, only one push button at a time can be the default button. This button is then displayed with an additional frame (depending on the GUI style).
The default button behavior is provided only in dialogs. Buttons can always be clicked from the keyboard by pressing Spacebar when the button has focus.
If the default property is set to false on the current default button while the dialog is visible, a new default will automatically be assigned the next time a pushbutton in the dialog receives focus.
This property's default is false.
public final void setFlat(boolean arg__1)
QPalette::Button
brush.
public final void setMenu(QMenu menu)
Ownership of the menu is not transferred to the push button.
![]() | ![]() | Push buttons with popup menus shown in the Plastique widget style (left) and Cleanlooks widget style (right). |
menu()
.
public final void showMenu()
public static QPushButton fromNativePointer(QNativePointer nativePointer)
protected final void initStyleOption(QStyleOptionButton option)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |