CheckDelegate QML 类型

具有可切换的勾选指示器的项目代理,可在开启和关闭之间切换。更多信息...

导入语句import QtQuick.Controls
继承

ItemDelegate

属性

详细描述

CheckDelegate 表示一个可以切换开启(选中)或关闭(未选中)的项目代理。检查代理通常用于从列表中的选项集中选择一个或多个选项。对于较小的选项集或需要唯一可识别的选项,请考虑使用CheckBox代替。

CheckDelegate 从ItemDelegate继承其 API,后者从AbstractButton继承。例如,您可以为 text 设置文本,并使用AbstractButton API响应用户点击。检查代理的状态可以通过 checked 属性设置。

除了选中与未选中状态外,还有一个第三种状态:部分选中。可以通过使用tristate 属性启用部分选中状态。此状态指示常规的选中/未选中状态无法确定;通常因为会影响检查代理的其他状态。当在树视图中选择多个子节点时,此状态非常有用。

ListView {
    model: ["Option 1", "Option 2", "Option 3"]
    delegate: CheckDelegate {
        text: modelData
    }
}

另请参阅 自定义 CheckDelegate代理控件CheckBox

属性文档

checkState : 枚举

该属性确定检查代理的检查状态。

可用状态

常量描述
Qt.Unchecked代理是未选中的。
Qt.PartiallyChecked代理是部分选中的。此状态仅在 tristate 启用时使用。
Qt.Checked代理是选中的。

另请参阅 tristatechecked


nextCheckState : 函数 [自QtQuick.Controls 2.4 (Qt 5.11)起]

该属性包含一个回调函数,当用户通过触摸、鼠标或键盘与检查代理交互性切换时,用于确定下一次检查状态。

默认情况下,普通检查代理在Qt.UncheckedQt.Checked状态之间循环,三态检查代理在Qt.UncheckedQt.PartiallyCheckedQt.Checked状态之间循环。

nextCheckState回调函数可以覆盖默认行为。以下示例实现了一个三态检查代理,可以根据外部条件显示部分选中状态,但永远不会在用户通过交互切换时循环到部分选中状态。

CheckDelegate {
    tristate: true
    checkState: allChildrenChecked ? Qt.Checked :
                   anyChildChecked ? Qt.PartiallyChecked : Qt.Unchecked

    nextCheckState: function() {
        if (checkState === Qt.Checked)
            return Qt.Unchecked
        else
            return Qt.Checked
    }
}

此属性是在QtQuick.Controls 2.4(Qt 5.11)中引入的。


tristate : bool

该属性确定检查代理是否有三个状态。

在下面的动画中,第一个checkdelegate是三态的

默认值是false,即代理只有两个状态。


© 2024 Qt公司。此处包含的文档贡献版权属于各自的拥有者。本提供的文档是在自由软件基金会发布的GNU自由文档许可协议版本1.3的条款下许可的。Qt及其相关标志是芬兰及其它全球国家的The Qt Company Ltd的商标。所有其他商标均为其各自所有者的财产。