- Qt 6.12
- Qt Quick Controls
- QML Types
- AbstractButton
- Qt 6.12.0 Reference Documentation

# AbstractButton QML Type

Abstract base type providing functionality common to buttons. More...

Import Statement: | `import QtQuick.Controls`
Inherits: | Control
Inherited By: | Button, CheckBox, CheckDelegate, DelayButton, HorizontalHeaderViewDelegate, ItemDelegate, MenuBarItem, MenuItem, RadioButton, RadioDelegate, RoundButton, SwipeDelegate, Switch, SwitchDelegate, TabButton, TableViewDelegate, ToolButton, TreeViewDelegate, and VerticalHeaderViewDelegate

- List of all members, including inherited members

## Properties

- action : Action `(since QtQuick.Controls 2.3 (Qt 5.10))`
- autoExclusive : bool
- autoRepeat : bool
- autoRepeatDelay : int `(since QtQuick.Controls 2.4 (Qt 5.11))`
- autoRepeatInterval : int `(since QtQuick.Controls 2.4 (Qt 5.11))`
- checkable : bool
- checked : bool
- display : enumeration `(since QtQuick.Controls 2.3 (Qt 5.10))`
- down : bool
- icon `(since QtQuick.Controls 2.3)`
  - icon.cache : bool `(since QtQuick.Controls 2.3)`
  - icon.color : color `(since QtQuick.Controls 2.3)`
  - icon.height : int `(since QtQuick.Controls 2.3)`
  - icon.name : string `(since QtQuick.Controls 2.3)`
  - icon.source : url `(since QtQuick.Controls 2.3)`
  - icon.width : int `(since QtQuick.Controls 2.3)`
- implicitIndicatorHeight : real `(since QtQuick.Controls 2.5 (Qt 5.12))`
- implicitIndicatorWidth : real `(since QtQuick.Controls 2.5 (Qt 5.12))`
- indicator : Item
- pressX : real `(since QtQuick.Controls 2.4 (Qt 5.11))`
- pressY : real `(since QtQuick.Controls 2.4 (Qt 5.11))`
- pressed : bool
- text : string

## Signals

- canceled()
- clicked()
- doubleClicked()
- pressAndHold()
- pressed()
- released()
- toggled() `(since QtQuick.Controls 2.2 (Qt 5.9))`

## Methods

- void animateClick() `(since Qt 6.8)`
- void click() `(since Qt 6.8)`
- void toggle()

## Detailed Description

AbstractButton provides the interface for controls with button-like behavior; for example, push buttons and checkable controls like radio buttons and check boxes. As an abstract control, it has no delegate implementations, leaving them to the types that derive from it.

See also ButtonGroup and Button Controls.

## Property Documentation

### action : Action `[since QtQuick.Controls 2.3 (Qt 5.10)]`

This property holds the button action.

This property was introduced in QtQuick.Controls 2.3 (Qt 5.10).

See also Action.

### autoExclusive : bool

This property holds whether auto-exclusivity is enabled.

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

Note: The property has no effect on buttons that belong to a ButtonGroup.

RadioButton and TabButton are auto-exclusive by default.

### autoRepeat : bool

This property holds whether the button repeats pressed(), released() and clicked() signals while the button is pressed and held down.

If this property is set to `true`, the pressAndHold() signal will not be emitted.

The default value is `false`.

The initial delay and the repetition interval are defined in milliseconds by autoRepeatDelay and autoRepeatInterval.

### autoRepeatDelay : int `[since QtQuick.Controls 2.4 (Qt 5.11)]`

This property holds the initial delay of auto-repetition in milliseconds. The default value is `300` ms.

This property was introduced in QtQuick.Controls 2.4 (Qt 5.11).

See also autoRepeat and autoRepeatInterval.

### autoRepeatInterval : int `[since QtQuick.Controls 2.4 (Qt 5.11)]`

This property holds the interval of auto-repetition in milliseconds. The default value is `100` ms.

This property was introduced in QtQuick.Controls 2.4 (Qt 5.11).

See also autoRepeat and autoRepeatDelay.

### checkable : bool

This property holds whether the button is checkable.

A checkable button toggles between checked (on) and unchecked (off) when the user clicks on it or presses the space bar while the button has active focus.

The default value is `false`.

See also checked.

### checked : bool

This property holds whether the button is checked.

Since Qt 6.2, setting this property no longer affects the checkable property. Explicitly set the `checkable` property if needed.

See also checkable.

### display : enumeration `[since QtQuick.Controls 2.3 (Qt 5.10)]`

This property determines how the icon and text are displayed within the button.

Display | Result
--- | ---
`AbstractButton.IconOnly` |
`AbstractButton.TextOnly` |
`AbstractButton.TextBesideIcon` (default) |
`AbstractButton.TextUnderIcon` |

This property was introduced in QtQuick.Controls 2.3 (Qt 5.10).

See also spacing and padding.

### down : bool

This property holds whether the button is visually down.

Unless explicitly set, this property follows the value of pressed. To return to the default value, set this property to `undefined`.

See also pressed.

### icon group

### icon.cache : bool `[since QtQuick.Controls 2.3]`

### icon.color : color `[since QtQuick.Controls 2.3]`

### icon.height : int `[since QtQuick.Controls 2.3]`

### icon.name : string `[since QtQuick.Controls 2.3]`

### icon.source : url `[since QtQuick.Controls 2.3]`

### icon.width : int `[since QtQuick.Controls 2.3]`

Name | Description
--- | ---
name | This property holds the name of the icon to use. The icon will be loaded from the platform theme. If the icon is found in the theme, it will always be used; even if icon.source is also set. If the icon is not found, icon.source will be used instead. For more information on theme icons, see QIcon::fromTheme().
source | This property holds the name of the icon to use. The icon will be loaded as a regular image. If icon.name is set and refers to a valid theme icon, it will always be used instead of this property.
width | This property holds the width of the icon. The icon's width will never exceed this value, though it will shrink when necessary.
height | This property holds the height of the icon. The icon's height will never exceed this value, though it will shrink when necessary.
color | This property holds the color of the icon. The icon is tinted with the specified color, unless the color is set to `"transparent"`.
cache | This property specifies whether the icon should be cached. The default value is true. For more information, see cache. This property was introduced in QtQuick.Controls 2.13.

These properties were introduced in QtQuick.Controls 2.3.

See also text, display, and Icons in Qt Quick Controls.

### implicitIndicatorHeight : real `[read-only, since QtQuick.Controls 2.5 (Qt 5.12)]`

This property holds the implicit indicator height.

The value is equal to `indicator ? indicator.implicitHeight : 0`.

This is typically used, together with implicitContentHeight and implicitBackgroundHeight, to calculate the implicitHeight.

This property was introduced in QtQuick.Controls 2.5 (Qt 5.12).

See also implicitIndicatorWidth.

### implicitIndicatorWidth : real `[read-only, since QtQuick.Controls 2.5 (Qt 5.12)]`

This property holds the implicit indicator width.

The value is equal to `indicator ? indicator.implicitWidth : 0`.

This is typically used, together with implicitContentWidth and implicitBackgroundWidth, to calculate the implicitWidth.

This property was introduced in QtQuick.Controls 2.5 (Qt 5.12).

See also implicitIndicatorHeight.

### indicator : Item

This property holds the indicator item.

### pressX : real `[read-only, since QtQuick.Controls 2.4 (Qt 5.11)]`

This property holds the x-coordinate of the last press.

Note: The value is updated on touch moves, but left intact after touch release.

This property was introduced in QtQuick.Controls 2.4 (Qt 5.11).

See also pressY.

### pressY : real `[read-only, since QtQuick.Controls 2.4 (Qt 5.11)]`

This property holds the y-coordinate of the last press.

Note: The value is updated on touch moves, but left intact after touch release.

This property was introduced in QtQuick.Controls 2.4 (Qt 5.11).

See also pressX.

### pressed : bool `[read-only]`

This property holds whether the button is physically pressed. A button can be pressed by either touch or key events.

See also down.

### text : string

This property holds a textual description of the button.

Note: The text is used for accessibility purposes, so it makes sense to set a textual description even if the content item is an image.

See also icon, display, and contentItem.

## Signal Documentation

### canceled()

This signal is emitted when the button loses mouse grab while being pressed, or when it would emit the released signal but the mouse cursor is not inside the button.

Note: The corresponding handler is `onCanceled`.

### clicked()

This signal is emitted when the button is interactively clicked by the user via touch, mouse, or keyboard.

Note: The corresponding handler is `onClicked`.

See also click(), animateClick(), and Call a C++ function from QML when a Button is clicked.

### doubleClicked()

This signal is emitted when the button is interactively double clicked by the user via touch or mouse.

Note: The corresponding handler is `onDoubleClicked`.

### pressAndHold()

This signal is emitted when the button is interactively pressed and held down by the user via touch or mouse. It is not emitted when autoRepeat is enabled.

Note: The corresponding handler is `onPressAndHold`.

### pressed()

This signal is emitted when the button is interactively pressed by the user via touch, mouse, or keyboard.

Note: The corresponding handler is `onPressed`.

### released()

This signal is emitted when the button is interactively released by the user via touch, mouse, or keyboard.

Note: The corresponding handler is `onReleased`.

### `[since QtQuick.Controls 2.2 (Qt 5.9)]` toggled()

This signal is emitted when a checkable button is interactively toggled by the user via touch, mouse, or keyboard.

Note: The corresponding handler is `onToggled`.

This signal was introduced in QtQuick.Controls 2.2 (Qt 5.9).

## Method Documentation

### `[since Qt 6.8]` void animateClick()

Simulates the button being clicked, with a 100 millisecond delay between press and release, animating its visual state in the process.

All signals associated with a click are emitted as appropriate.

If the focusPolicy includes `Qt.ClickFocus`, activeFocus will become `true`.

This function does nothing if the button is disabled.

Calling this function again before the button is released resets the release timer.

This method was introduced in Qt 6.8.

See also click(), pressed(), released(), and clicked().

### `[since Qt 6.8]` void click()

Simulates the button being clicked with no delay between press and release.

All signals associated with a click are emitted as appropriate.

If the focusPolicy includes `Qt.ClickFocus`, activeFocus will become `true`.

This function does nothing if the button is disabled.

Calling this function again before the button is released resets the release timer.

This method was introduced in Qt 6.8.

See also animateClick(), pressed(), released(), and clicked().

### void toggle()

Toggles the checked state of the button.

See also click() and animateClick().