ButtonGroup QML Type

Mutually-exclusive group of checkable buttons. 更多...

import 语句: import QtQuick.Controls
继承:

QtObject

特性

附加特性

信号

  • clicked (AbstractButton button ) (since QtQuick.Controls 2.1 (Qt 5.8))

方法

详细描述

ButtonGroup is a non-visual, mutually exclusive group of buttons. It is used with controls such as RadioButton , where only one of the options can be selected at a time.

The most straight-forward way to use ButtonGroup is to assign a list of buttons. For example, the list of children of a positioner layout that manages a group of mutually exclusive buttons.

ButtonGroup {
    buttons: column.children
}
Column {
    id: column
    RadioButton {
        checked: true
        text: qsTr("DAB")
    }
    RadioButton {
        text: qsTr("FM")
    }
    RadioButton {
        text: qsTr("AM")
    }
}
					

Mutually exclusive buttons do not always share the same parent item, or the parent layout may sometimes contain items that should not be included in the button group. Such cases are best handled using the group 附加特性。

ButtonGroup { id: radioGroup }
Column {
    Label {
        text: qsTr("Radio:")
    }
    RadioButton {
        checked: true
        text: qsTr("DAB")
        ButtonGroup.group: radioGroup
    }
    RadioButton {
        text: qsTr("FM")
        ButtonGroup.group: radioGroup
    }
    RadioButton {
        text: qsTr("AM")
        ButtonGroup.group: radioGroup
    }
}
					

More advanced use cases can be handled using the addButton() and removeButton() 方法。

另请参阅 RadioButton and 按钮控件 .

特性文档编制

buttons : list < AbstractButton >

This property holds the list of buttons.

ButtonGroup {
    buttons: column.children
}
Column {
    id: column
    RadioButton {
        checked: true
        text: qsTr("Option A")
    }
    RadioButton {
        text: qsTr("Option B")
    }
}
					

另请参阅 group .

checkState : enumeration [since QtQuick.Controls 2.4 (Qt 5.11)]

This property holds the combined check state of the button group.

Available states:

常量 描述
Qt.Unchecked None of the buttons are checked.
Qt.PartiallyChecked Some of the buttons are checked.
Qt.Checked All of the buttons are checked.

Setting the check state of a non-exclusive button group to Qt.Unchecked or Qt.Checked unchecks or checks all buttons in the group, respectively. Qt.PartiallyChecked 被忽略。

Setting the check state of an exclusive button group to Qt.Unchecked unchecks the checkedButton . Qt.Checked and Qt.PartiallyChecked 被忽略。

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

checkedButton : AbstractButton

This property holds the currently selected button in an exclusive group, or null if there is none or the group is non-exclusive.

By default, it is the first checked button added to an exclusive button group.

另请参阅 exclusive .

exclusive : bool [since QtQuick.Controls 2.3 (Qt 5.10)]

This property holds whether the button group is exclusive. The default value is true .

若此特性为 true ,则在任何给定时间只能复选组中一个按钮。用户可以点击任意按钮以复选它,且该按钮将替换组中的现有被复选按钮。

在独占组中,用户无法通过点击目前被复选的按钮来取消复选;相反,必须点击组中的另一按钮来为该组设置新的被复选按钮。

In a non-exclusive group, checking and unchecking buttons does not affect the other buttons in the group. Furthermore, the value of the checkedButton 特性为 null .

该特性在 QtQuick.Controls 2.3 (Qt 5.10) 引入。

附加特性文档编制

ButtonGroup.group : ButtonGroup

This property attaches a button to a button group.

ButtonGroup { id: group }
RadioButton {
    checked: true
    text: qsTr("Option A")
    ButtonGroup.group: group
}
RadioButton {
    text: qsTr("Option B")
    ButtonGroup.group: group
}
					

另请参阅 buttons .

信号文档编制

[since QtQuick.Controls 2.1 (Qt 5.8)] clicked ( AbstractButton button )

This signal is emitted when a button in the group has been clicked.

This signal is convenient for implementing a common signal handler for all buttons in the same group.

ButtonGroup {
    buttons: column.children
    onClicked: console.log("clicked:", button.text)
}
Column {
    id: column
    Button { text: "First" }
    Button { text: "Second" }
    Button { text: "Third" }
}
					

注意: 相应处理程序是 onClicked .

该信号在 QtQuick.Controls 2.1 (Qt 5.8) 引入。

另请参阅 AbstractButton::clicked ().

方法文档编制

void addButton ( AbstractButton button )

添加 button to the button group.

注意: Manually adding objects to a button group is typically unnecessary. The buttons 特性和 group attached property provide a convenient and declarative syntax.

另请参阅 buttons and group .

void removeButton ( AbstractButton button )

Removes a button 从按钮组。

注意: Manually removing objects from a button group is typically unnecessary. The buttons 特性和 group attached property provide a convenient and declarative syntax.

另请参阅 buttons and group .