列表元素 QML 类型
导入语句 | import QtQml.Models |
详细描述
列表元素在 ListModel 定义内部定义,代表将使用 ListView 或 Repeater 显示的列表中的项。
列表元素的声明与其他 QML 元素类似,但它们包含一组 role 定义而不是属性。使用与属性定义相同的语法,role 同时定义了数据的访问方式并包含数据本身。
用作角色的名称必须以小写字母开头,并且应在给定模型的所有元素中通用。值必须是简单常量;可以是字符串(括在引号内, optional,在 QT_TR_NOOP 调用中),布尔值(true,false)、数字或枚举值(例如 AlignText.AlignHCenter)。
从 Qt 5.11 开始,ListElement 还允许将函数声明赋给角色。这允许定义具有可调用操作的 ListElements。
引用角色
角色名称由 delegates 用以从列表元素中获取数据。每个角色名称都在 delegate 的作用域中访问,并引用当前元素中的相应角色。在角色名称将导致歧义的情况下,可以通过 model 属性访问它(例如,model.cost
而不是 cost
)。
示例用法
以下模型定义了一系列列表元素,每个元素都包含 "name" 和 "cost" 角色及其相关值。
ListModel { id: fruitModel ListElement { name: "Apple" cost: 2.45 } ListElement { name: "Orange" cost: 3.25 } ListElement { name: "Banana" cost: 1.95 } }
委托通过简单地引用 name
和 cost
来获取每个元素的名字和成本
ListView { anchors.fill: parent model: fruitModel delegate: Row { Text { text: "Fruit: " + name } Text { text: "Cost: $" + cost } } }
另请参阅ListModel.
© 2024 Qt 公司有限公司。此处所包含的文档贡献的内容分别为各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU 自由文档许可证 1.3 版的条款授权的。Qt 及相关标志是芬兰的 Qt 公司有限公司及其在全世界其他国家的商标。所有其他商标均为各自所有者的财产。