import QtQuick.Controls 2.5
https://doc.qt.io/qt-5/videos/qtquickcontrols2-checkbox.mp4
CheckBox提供了一个可以切换(选中)或关闭(未选中)的选项按钮。复选框通常用于从一组选项中选择一个或多个选项。对于较大的选项集,例如列表中的选项,请考虑使用CheckDelegate
。
CheckBox
从 AbstractButton
继承其 API。例如,可以使用 checked
属性设置复选框的状态。
除了已检查和未检查的状态之外,还有第三种状态:部分检查。可以使用 tristate
属性启用部分检查状态。该状态表示无法确定常规检查/未检查状态;通常是因为影响复选框的其他状态。例如,当在树视图中选择了多个子节点时,此状态很有用。
Hierarchical checkbox groups can be managed with a non-exclusive ButtonGroup.
以下示例说明了如何将子项的组合检查状态绑定到父复选框的检查状态:
Column {
ButtonGroup {
id: childGroup
exclusive: false
checkState: parentBox.checkState
}
CheckBox {
id: parentBox
text: qsTr("Parent")
checkState: childGroup.checkState
}
CheckBox {
checked: true
text: qsTr("Child 1")
leftPadding: indicator.width
ButtonGroup.group: childGroup
}
CheckBox {
text: qsTr("Child 2")
leftPadding: indicator.width
ButtonGroup.group: childGroup
}
}
属性:
-
checkState
: enumeration
控制 复选框的状态 -
nextCheckState
:函数
此属性包含一个回调函数,只要用户通过触摸,鼠标或键盘交互切换复选框,就会调用该函数来确定下一个检查状态。
默认情况下,正常复选框在Qt.Unchecked
和Qt.Checked
状态之间循环,并且三态复选框在Qt.Unchecked
,Qt.PartiallyChecked
和Qt.Checked
状态之间循环。
nextCheckState
回调函数可以覆盖默认行为。以下示例实现了一个三态复选框,该复选框可以根据外部条件呈现部分检查状态,但在用户交互式切换时从不循环到部分检查状态。CheckBox { tristate: true checkState: allChildrenChecked ? Qt.Checked : anyChildChecked ? Qt.PartiallyChecked : Qt.Unchecked nextCheckState: function() { if (checkState === Qt.Checked) return Qt.Unchecked else return Qt.Checked } }
This property was introduced in QtQuick.Controls 2.4 (Qt 5.11).
tristate
:(bool。默认 false)表示复选框是否为三态,默认只有两种状态