DelegateChooser QML 类型

允许视图使用不同的代理为模型中不同类型的项。 更多...

导入语句import Qt.labs.qmlmodels

属性

详细描述

DelegateChooser 是一个特殊的 组件 类型,旨在那些需要通过视图使用作为代理的组件的场景。DelegateChooser 封装了一组 DelegateChoice。这些选择用于确定将为模型中的每个项实例化的代理。选择的执行是基于模型项 role 的值,同时基于索引。

DelegateChooser 经常在需要显示一组彼此差异很大的代理时使用。例如,一个典型的电话设置视图可能包括开关、滑块、单选按钮和其他基于每种设置类型的视觉表示。在这种情况下,DelegateChooser 可以提供一个简单的方法将不同类型的代理关联到每种设置。

import QtQuick
import QtQuick.Controls
import Qt.labs.qmlmodels

ListView {
    width: 200; height: 400

    ListModel {
        id: listModel
        ListElement { type: "info"; ... }
        ListElement { type: "switch"; ... }
        ListElement { type: "swipe"; ... }
        ListElement { type: "switch"; ... }
    }

    DelegateChooser {
        id: chooser
        role: "type"
        DelegateChoice { roleValue: "info"; ItemDelegate { ... } }
        DelegateChoice { roleValue: "switch"; SwitchDelegate { ... } }
        DelegateChoice { roleValue: "swipe"; SwipeDelegate { ... } }
    }

    model: listModel
    delegate: chooser
}

注意:此类型旨在仅与 TableView 和任何基于 DelegateModel 的视图透明地工作。不基于 DelegateModel 内部实现的视图(包括用户定义的视图)需要显式支持此类型的组件才能按描述的方式使用。

另请参阅:DelegateChoice

属性文档

choices : list<DelegateChoice> [默认值]

选择器的 DelegateChoices 列表。

列表被视为有序列表,其中将首先使用匹配到的第一个 DelegateChoice

通常不需要引用 choices 属性,因为它是 DelegateChooser 的默认属性,因此所有子项都自动分配给此属性。


role : string

该属性包含用于确定给定模型项代理的属性或属性名称。

注意:对于基于QAbstractItemModel的模型,包括ListModel,当模型信号指出角色已更改时,DelegateChooser将重新评估选择。对于任何其他类型的模型,该选择仅在创建给定模型索引的项时执行一次。

另请参阅:DelegateChoice


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