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有限公司的商标。所有其他商标均为其各自所有者的财产。