ExclusiveGroup QML Type

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

Import Statement: import QtQuick.Controls 1.4

Properties

Methods

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)

Register 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)

Unregister 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().