C
列表元素 QML 类型
定义一个 ListModel 中的数据项。了解更多...
导入声明 | import QtQuick |
详细描述
列表元素在 ListModel 定义内部定义,表示通过 ListView 或 Repeater 项显示的列表中的项。
列表元素的定义类似于其他 QML 元素,除了它们包含一组 role 定义而不是属性。使用与属性定义相同的语法,role 定义如何访问数据和包含的数据本身。
用于角色的名称必须以小写字母开头,并且必须在给定模型的所有元素中通用。值必须是简单的常量;可以是字符串(可选地用 qsTr 包装),布尔值(true、false)、数字或枚举值(例如 AlignText.AlignHCenter)。
参考角色
角色名称由代理用于从列表元素中获取数据。每个角色名称在代理的作用域中都是通过 modelData
属性访问的,并引用当前元素中相应的角色。例如,modelData.cost
引用当前数据中的 cost
角色。
注意:Qt Quick Ultralite 不允许对模型角色进行非限定访问。此外,Qt Quick 使用 model
进行角色访问,而 Qt Quick Ultralite 使用 modelData
。请参阅 Qt Quick Ultralite 中的模型差异。
示例用法
以下模型定义了一系列列表元素,每个列表元素都包含 "name" 和 "cost" 角色,以及它们的关联值。
ListModel { id: fruitModel ListElement { name: "Apple" cost: "2.45" } ListElement { name: "Orange" cost: "3.25" } ListElement { name: "Banana" cost: "1.95" } }
通过引用 modelData.name
和 modelData.cost
,代理可以为每个 ListElement 获取名称和成本
ListView { anchors.fill: parent model: fruitModel delegate: Row { width: parent.width / fruitModel.count height: parent.height / fruitModel.count Text { text: "Fruit: " + model.name } Text { text: " Cost: $" + model.cost } } }
另请参阅:ListModel 和 Qt Quick Ultralite 中的模型差异。
在某些 Qt 许可下提供。
了解更多信息。