列表元素 QML 类型

ListModel 中定义数据项。 更多...

导入语句import QtQml.Models

详细描述

列表元素在 ListModel 定义内部定义,代表将使用 ListViewRepeater 显示的列表中的项。

列表元素的声明与其他 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
    }
}

委托通过简单地引用 namecost 来获取每个元素的名字和成本

ListView {
    anchors.fill: parent
    model: fruitModel
    delegate: Row {
        Text { text: "Fruit: " + name }
        Text { text: "Cost: $" + cost }
    }
}

另请参阅ListModel.

© 2024 Qt 公司有限公司。此处所包含的文档贡献的内容分别为各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU 自由文档许可证 1.3 版的条款授权的。Qt 及相关标志是芬兰的 Qt 公司有限公司及其在全世界其他国家的商标。所有其他商标均为各自所有者的财产。