QAbstractButton Class Reference

The QAbstractButton class is the abstract base class of button widgets, providing functionality common to buttons.

  1. #include <QAbstractButton>

Inherits: QWidget.

Inherited by: Q3Button, QCheckBox, QPushButton, QRadioButton, and QToolButton.

Detailed Description

The QAbstractButton class is the abstract base class of button widgets, providing functionality common to buttons.

This class implements an abstract button. Subclasses of this class handle user actions, and specify how the button is drawn.

QAbstractButton provides support for both push buttons and checkable (toggle) buttons. Checkable buttons are implemented in the QRadioButton and QCheckBox classes. Push buttons are implemented in the QPushButton and QToolButton classes; these also provide toggle behavior if required.

Any button can display a label containing text and an icon. setText() sets the text; setIcon() sets the icon. If a button is disabled, its label is changed to give the button a "disabled" appearance.

If the button is a text button with a string containing an ampersand ('&'), QAbstractButton automatically creates a shortcut key. For example:

  1.                 QPushButton *button = new QPushButton(tr("Ro&ck && Roll"), this);

The Alt+C shortcut is assigned to the button, i.e., when the user presses Alt+C the button will call animateClick(). See the QShortcut documentation for details (to display an actual ampersand, use '&&').

You can also set a custom shortcut key using the setShortcut() function. This is useful mostly for buttons that do not have any text, because they have no automatic shortcut.

  1. button->setIcon(QIcon(":/images/print.png"));
  2. button->setShortcut(tr("Alt+F7"));

All of the buttons provided by Qt (QPushButton, QToolButton, QCheckBox, and QRadioButton) can display both text and icons.

A button can be made the default button in a dialog are provided by QPushButton::setDefault() and QPushButton::setAutoDefault().

QAbstractButton provides most of the states used for buttons:

  • isDown() indicates whether the button is pressed down.
  • isChecked() indicates whether the button is checked. Only checkable buttons can be checked and unchecked (see below).
  • isEnabled() indicates whether the button can be pressed by the user.
  • setAutoRepeat() sets whether the button will auto-repeat if the user holds it down. autoRepeatDelay and autoRepeatInterval define how auto-repetition is done.
  • setCheckable() sets whether the button is a toggle button or not.

The difference between isDown() and isChecked() is as follows. When the user clicks a toggle button to check it, the button is first pressed then released into the checked state. When the user clicks it again (to uncheck it), the button moves first to the pressed state, then to the unchecked state (isChecked() and isDown() are both false).

QAbstractButton provides four signals:

  1. pressed() is emitted when the left mouse button is pressed while the mouse cursor is inside the button.
  2. released() is emitted when the left mouse button is released.
  3. clicked() is emitted when the button is first pressed and then released, when the shortcut key is typed, or when click() or animateClick() is called.
  4. toggled() is emitted when the state of a toggle button changes.

To subclass QAbstractButton, you must reimplement at least paintEvent() to draw the button's outline and its text or pixmap. It is generally advisable to reimplement sizeHint() as well, and sometimes hitButton() (to determine whether a button press is within the button). For buttons with more than two states (like tri-state buttons), you will also have to reimplement checkStateSet() and nextCheckState().

See also QButtonGroup.

Properties

Toggle detailsautoExclusiveautoExclusive : bool

This property holds whether auto-exclusivity is enabled

If auto-exclusivity is enabled, checkable buttons that belong to the same parent widget behave as if they were part of the same exclusive button group. In an exclusive button group, only one button can be checked at any time; checking another button automatically unchecks the previously checked one.

The property has no effect on buttons that belong to a button group.

autoExclusive is off by default, except for radio buttons.

See also QRadioButton.

Access functions:

Look up this member in the source code.

Toggle detailsautoRepeatautoRepeat : bool

This property holds whether autoRepeat is enabled

If autoRepeat is enabled, then the pressed(), released(), and clicked() signals are emitted at regular intervals when the button is down. autoRepeat is off by default. The initial delay and the repetition interval are defined in milliseconds by autoRepeatDelay and autoRepeatInterval.

Note: If a button is pressed down by a shortcut key, then auto-repeat is enabled and timed by the system and not by this class. The pressed(), released(), and clicked() signals will be emitted like in the normal case.

Access functions:

Look up this member in the source code.

Toggle detailsautoRepeatDelayautoRepeatDelay : int

This property holds the initial delay of auto-repetition

If autoRepeat is enabled, then autoRepeatDelay defines the initial delay in milliseconds before auto-repetition kicks in.

See also autoRepeat and autoRepeatInterval.

Access functions:

Look up this member in the source code.

Toggle detailsautoRepeatIntervalautoRepeatInterval : int

This property holds the interval of auto-repetition

If autoRepeat is enabled, then autoRepeatInterval defines the length of the auto-repetition interval in millisecons.

See also autoRepeat and autoRepeatDelay.

Access functions:

Look up this member in the source code.

Toggle detailscheckablecheckable : bool

This property holds whether the button is checkable

By default, the button is not checkable.

See also checked.

Access functions:

Look up this member in the source code.

Toggle detailscheckedchecked : bool

This property holds whether the button is checked

Only checkable buttons can be checked. By default, the button is unchecked.

See also checkable.

Access functions:

Look up this member in the source code.

Toggle detailsdowndown : bool

This property holds whether the button is pressed down

If this property is true, the button is pressed down. The signals pressed() and clicked() are not emitted if you set this property to true. The default is false.

Access functions:

Look up this member in the source code.

Toggle detailsiconicon : QIcon

This property holds the icon shown on the button

The icon's default size is defined by the GUI style, but can be adjusted by setting the iconSize property.

Access functions:

  • void setIcon ( const QIcon & icon )

Look up this member in the source code.

Toggle detailsiconSizeiconSize : QSize

This property holds the icon size used for this button.

The default size is defined by the GUI style. This is a maximum size for the icons. Smaller icons will not be scaled up.

Access functions:

Look up this member in the source code.

Toggle detailsshortcutshortcut : QKeySequence

This property holds the mnemonic associated with the button

Access functions:

Look up this member in the source code.

Toggle detailstexttext : QString

This property holds the text shown on the button

If the button has no text, the text() function will return a an empty string.

If the text contains an ampersand character ('&'), a shortcut is automatically created for it. The character that follows the '&' will be used as the shortcut key. Any previous shortcut will be overwritten, or cleared if no shortcut is defined by the text. See the QShortcut documentation for details (to display an actual ampersand, use '&&').

There is no default text.

Access functions:

  • void setText ( const QString & text )

Look up this member in the source code.

    Public Functions

    Toggle details QAbstractButton

    QAbstractButtonQAbstractButton ( QWidget *parent=0 ) ( QWidget *parent=0 )

    Constructs an abstract button with a parent.

    Look up this member in the source code.

    Toggle details QAbstractButton

    ~QAbstractButton~QAbstractButton () ()

    Destroys the button.

    Look up this member in the source code.

    Toggle details void QAbstractButton

    changeEventchangeEvent ( QEvent *e ) ( QEvent *e ) [virtual protected]

    Reimplemented from QWidget::changeEvent().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    checkStateSetcheckStateSet () () [virtual protected]

    This virtual handler is called when setChecked() was called, unless it was called from within nextCheckState(). It allows subclasses to reset their intermediate button states.

    See also nextCheckState().

    Look up this member in the source code.

    Toggle details bool QAbstractButton

    eventevent ( QEvent *e ) ( QEvent *e ) [virtual protected]

    Reimplemented from QObject::event().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    focusInEventfocusInEvent ( QFocusEvent *e ) ( QFocusEvent *e ) [virtual protected]

    Reimplemented from QWidget::focusInEvent().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    focusOutEventfocusOutEvent ( QFocusEvent *e ) ( QFocusEvent *e ) [virtual protected]

    Reimplemented from QWidget::focusOutEvent().

    Look up this member in the source code.

    Toggle details QButtonGroup * QAbstractButton

    groupgroup () ()const

    Returns the group that this button belongs to.

    If the button is not a member of any QButtonGroup, this function returns 0.

    See also QButtonGroup.

    Look up this member in the source code.

    Toggle details bool QAbstractButton

    hitButtonhitButton ( const QPoint &pos ) ( const QPoint &pos )const [virtual protected]

    Returns true if pos is inside the clickable button rectangle; otherwise returns false.

    By default, the clickable area is the entire widget. Subclasses may reimplement this function to provide support for clickable areas of different shapes and sizes.

    Look up this member in the source code.

    Toggle details void QAbstractButton

    keyPressEventkeyPressEvent ( QKeyEvent *e ) ( QKeyEvent *e ) [virtual protected]

    Reimplemented from QWidget::keyPressEvent().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    keyReleaseEventkeyReleaseEvent ( QKeyEvent *e ) ( QKeyEvent *e ) [virtual protected]

    Reimplemented from QWidget::keyReleaseEvent().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    mouseMoveEventmouseMoveEvent ( QMouseEvent *e ) ( QMouseEvent *e ) [virtual protected]

    Reimplemented from QWidget::mouseMoveEvent().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    mousePressEventmousePressEvent ( QMouseEvent *e ) ( QMouseEvent *e ) [virtual protected]

    Reimplemented from QWidget::mousePressEvent().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    mouseReleaseEventmouseReleaseEvent ( QMouseEvent *e ) ( QMouseEvent *e ) [virtual protected]

    Reimplemented from QWidget::mouseReleaseEvent().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    nextCheckStatenextCheckState () () [virtual protected]

    This virtual handler is called when a button is clicked. The default implementation calls setChecked(!isChecked()) if the button isCheckable(). It allows subclasses to implement intermediate button states.

    See also checkStateSet().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    paintEventpaintEvent ( QPaintEvent *e ) ( QPaintEvent *e ) [pure virtual protected]

    Reimplemented from QWidget::paintEvent().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    timerEventtimerEvent ( QTimerEvent *e ) ( QTimerEvent *e ) [virtual protected]

    Reimplemented from QObject::timerEvent().

    Look up this member in the source code.

    Toggle details QAbstractButton

    QAbstractButtonQAbstractButton ( QWidget *parent , const char *name , Qt::WindowFlags f=0 ...) ( QWidget *parent , const char *name , Qt::WindowFlags f=0 ) Qt3-support

    Use QAbstractButton(QWidget *) instead.

    Call setObjectName() if you want to specify an object name, and setParent() if you want to set the window flags.

    Look up this member in the source code.

    Toggle details QKeySequence QAbstractButton

    accelaccel () ()const Qt3-support

    Use shortcut() instead.

    See also setAccel().

    Look up this member in the source code.

    Toggle details QIcon * QAbstractButton

    iconSeticonSet () ()const Qt3-support

    Use icon() instead.

    See also setIconSet().

    Look up this member in the source code.

    Toggle details bool QAbstractButton

    isOnisOn () ()const Qt3-support

    Use isChecked() instead.

    Look up this member in the source code.

    Toggle details bool QAbstractButton

    isToggleButtonisToggleButton () ()const Qt3-support

    Use isCheckable() instead.

    Look up this member in the source code.

    Toggle details const QPixmap * QAbstractButton

    pixmappixmap () ()const Qt3-support

    This compatibility function always returns 0.

    Use icon() instead.

    See also setPixmap().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    setAccelsetAccel ( const QKeySequence &key ) ( const QKeySequence &key ) Qt3-support

    Use setShortcut() instead.

    See also accel().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    setIconSetsetIconSet ( const QIcon &icon ) ( const QIcon &icon ) Qt3-support

    Use setIcon() instead.

    See also iconSet().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    setPixmapsetPixmap ( const QPixmap &p ) ( const QPixmap &p ) Qt3-support

    Use setIcon() instead.

    See also pixmap().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    setToggleButtonsetToggleButton ( bool b ) ( bool b ) Qt3-support

    Use setCheckable() instead.

    See also isToggleButton().

    Look up this member in the source code.

    Signals

    Toggle details void QAbstractButton

    clickedclicked ( bool checked=false ) ( bool checked=false ) [signal]

    This signal is emitted when the button is activated (i.e. pressed down then released while the mouse cursor is inside the button), when the shortcut key is typed, or when click() or animateClick() is called. Notably, this signal is not emitted if you call setDown(), setChecked() or toggle().

    If the button is checkable, checked is true if the button is checked, or false if the button is unchecked.

    See also pressed(), released(), and toggled().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    pressedpressed () () [signal]

    This signal is emitted when the button is pressed down.

    See also released() and clicked().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    releasedreleased () () [signal]

    This signal is emitted when the button is released.

    See also pressed(), clicked(), and toggled().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    toggledtoggled ( bool checked ) ( bool checked ) [signal]

    This signal is emitted whenever a checkable button changes its state. checked is true if the button is checked, or false if the button is unchecked.

    This may be the result of a user action, click() slot activation, or because setChecked() was called.

    The states of buttons in exclusive button groups are updated before this signal is emitted. This means that slots can act on either the "off" signal or the "on" signal emitted by the buttons in the group whose states have changed.

    For example, a slot that reacts to signals emitted by newly checked buttons but which ignores signals from buttons that have been unchecked can be implemented using the following pattern:

    1. void MyWidget::reactToToggle(bool checked)
    2.  {
    3.    if (checked)  {
    4.       // Examine the new button states.
    5.       ...
    6.    }
    7. }

    Button groups can be created using the QButtonGroup class, and updates to the button states monitored with the QButtonGroup::buttonClicked() signal.

    See also checked and clicked().

    Look up this member in the source code.

    Public Slots

    Toggle details void QAbstractButton

    animateClickanimateClick ( int msec=100 ) ( int msec=100 ) [slot]

    Performs an animated click: the button is pressed immediately, and released msec milliseconds later (the default is 100 ms).

    Calling this function again before the button was released will reset the release timer.

    All signals associated with a click are emitted as appropriate.

    This function does nothing if the button is disabled.

    See also click().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    clickclick () () [slot]

    Performs a click.

    All the usual signals associated with a click are emitted as appropriate. If the button is checkable, the state of the button is toggled.

    This function does nothing if the button is disabled.

    See also animateClick().

    Look up this member in the source code.

    Toggle details void QAbstractButton

    toggletoggle () () [slot]

    Toggles the state of a checkable button.

    See also checked.

    Look up this member in the source code.

    Toggle details void QAbstractButton

    setOnsetOn ( bool b ) ( bool b ) [slot] Qt3-support

    Use setChecked() instead.

    See also isOn().

    Look up this member in the source code.

    Notes provided by the Qt Community

    No notes