C

列表元素 QML 类型

定义一个 ListModel 中的数据项。了解更多...

导入声明import QtQuick

详细描述

列表元素在 ListModel 定义内部定义,表示通过 ListViewRepeater 项显示的列表中的项。

列表元素的定义类似于其他 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.namemodelData.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 }
    }
}

另请参阅:ListModelQt Quick Ultralite 中的模型差异

在某些 Qt 许可下提供。
了解更多信息。