正文
列表元素,在ListModel中定义一个数据项。
详细说明
列表元素在ListModel内定义,使用ListView或Repeater类型显示列表中的所有元素。
列表元素的定义与其他QML元素一样,只是它们包含角色定义而不是属性的集合。角色的使用和属性定义的语法相同,既定义了如何访问数据又包括了数据本身。
角色名称必须以小写字母开头,并且应为给定模型中的所有元素所共有。值必须是简单常量:字符串、布尔值、数字或枚举值。
从Qt5.11开始,ListElement还允许将函数声明分配给角色。这允许使用可调用操作定义ListElements。
引用角色
通过使用角色名称从列表元素获取数据。每个角色名称都可以在代理的范围内访问,并引用当前元素中的相应角色。如果角色名称使用不明确(即和属性名称有重复),则可以通过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和const获取每个元素的名称和成本:
ListView {
anchors.fill: parent
model: fruitModel
delegate: Row {
Text { text: "Fruit: " + name }
Text { text: "Cost: $" + cost }
}
}