- Qt 5.15
- Qt Quick Controls 1
- QML Types
- ExclusiveGroup QML Type
- Qt 5.15.19 Reference Documentation

# ExclusiveGroup QML Type

ExclusiveGroup provides a way to declare several checkable controls as mutually exclusive. More...

Import Statement: | import QtQuick.Controls 1.4

- List of all members, including inherited members

## Properties

- current : object

## Methods

- void bindCheckable(object)
- void unbindCheckable(object)

## Detailed Description

ExclusiveGroup can contain several Action items, and those will automatically get their Action::exclusiveGroup property assigned.

     ExclusiveGroup {
         id: radioInputGroup

         Action {
             id: dabRadioInput
             text: "DAB"
             checkable: true
         }

         Action {
             id: fmRadioInput
             text: "FM"
             checkable: true
         }

         Action {
             id: amRadioInput
             text: "AM"
             checkable: true
         }
     }

Several controls already support ExclusiveGroup, e.g. Action, MenuItem, Button, and RadioButton.

As ExclusiveGroup only supports Action as child items, we need to manually assign the `exclusiveGroup` property for other objects.

     GroupBox {
         id: group2
         title: qsTr("Tab Position")
         Layout.fillWidth: true
         RowLayout {
             ExclusiveGroup { id: tabPositionGroup }
             RadioButton {
                 id: topButton
                 text: qsTr("Top")
                 checked: true
                 exclusiveGroup: tabPositionGroup
                 Layout.minimumWidth: 100
             }
             RadioButton {
                 id: bottomButton
                 text: qsTr("Bottom")
                 exclusiveGroup: tabPositionGroup
                 Layout.minimumWidth: 100
             }
         }
     }

## Adding support to ExclusiveGroup

It is possible to add support for ExclusiveGroup for an object or control. It should have a `checked` property, and either a `checkedChanged`, `toggled()`, or `toggled(bool)` signal. It also needs to be bound with ExclusiveGroup::bindCheckable() when its ExclusiveGroup typed property is set.

     Item {
         id: myItem

         property bool checked: false
         property ExclusiveGroup exclusiveGroup: null

         onExclusiveGroupChanged: {
             if (exclusiveGroup)
                 exclusiveGroup.bindCheckable(myItem)
         }
     }

The example above shows the minimum code necessary to add ExclusiveGroup support to any item.

## Property Documentation

current : object

The currently selected object. Defaults to the first checked object bound to the ExclusiveGroup. If there is none, then it defaults to `null`.

## Method Documentation

void bindCheckable(object)

Registers object to the exclusive group.

You should only need to call this function when creating a component you want to be compatible with ExclusiveGroup.

See also ExclusiveGroup::unbindCheckable().

void unbindCheckable(object)

Unregisters object from the exclusive group.

You should only need to call this function when creating a component you want to be compatible with ExclusiveGroup.

See also ExclusiveGroup::bindCheckable().