美文网首页
【QML】复选框 CheckBox

【QML】复选框 CheckBox

作者: 4thirteen2one | 来源:发表于2019-05-21 10:50 被阅读0次

import QtQuick.Controls 2.5
https://doc.qt.io/qt-5/videos/qtquickcontrols2-checkbox.mp4
CheckBox提供了一个可以切换(选中)或关闭(未选中)的选项按钮。复选框通常用于从一组选项中选择一个或多个选项。对于较大的选项集,例如列表中的选项,请考虑使用CheckDelegate

CheckBoxAbstractButton 继承其 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
    控制 复选框的状态

    • 取值
      Constant Description
      Qt.Unchecked The checkbox is unchecked.
      Qt.PartiallyChecked The checkbox is partially checked. This state is only used when tristate is enabled.
      Qt.Checked The checkbox is checked.
    • See also tristate and checked.
  • nextCheckState:函数
    此属性包含一个回调函数,只要用户通过触摸,鼠标或键盘交互切换复选框,就会调用该函数来确定下一个检查状态。
    默认情况下,正常复选框在 Qt.UncheckedQt.Checked 状态之间循环,并且三态复选框在 Qt.UncheckedQt.PartiallyCheckedQt.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)表示复选框是否为三态,默认只有两种状态

相关文章

网友评论

      本文标题:【QML】复选框 CheckBox

      本文链接:https://www.haomeiwen.com/subject/zghdzqtx.html