列表QML值类型
一组QML对象。更多信息...
详细描述
list
类型指代一个QML对象或值的列表。
默认情况下,类型为list
的属性是空的。
list
可以存储QML对象或值类型值。
在与C++集成时,请注意从C++传递到QML的任何QQmlListProperty值都将自动转换为list
值,反之亦然。
同样,任何注册的值类型T
的QList<T>
都会自动转换为list
值,反之亦然。
使用列表类型
例如,Item类型有一个列表类型属性states
,可以按以下方式赋值和使用:
import QtQuick Item { width: 100; height: 100 states: [ State { name: "activated" }, State { name: "deactivated" } ] Component.onCompleted: { console.log("Name of first state:", states[0].name) for (var i = 0; i < states.length; i++) console.log("state", i, states[i].name) } }
定义的State对象将按它们定义的顺序添加到states
列表中。
如果列表只包含一个对象,则可以省略方括号
import QtQuick Item { width: 100; height: 100 states: State { name: "activated" } }
您也可以在QML中声明自己的列表属性
import QtQml QtObject { property list<int> intList: [1, 2, 3, 4] property list<QtObject> objectList }
列表可以使用类似于JavaScript数组的用法。例如
- 使用方括号语法([])和逗号分隔的值分配值
length
属性提供了列表中的项目数量- 使用
[index]
语法访问列表中的值 - 可以使用
push()
来追加条目 - 可以设置列表的
length
属性以截断或扩展它。
但是,您不能通过将索引当前未在范围内的索引赋值来自动扩展列表。此外,如果在对象列表中插入null
值,这些值将在底层的QQmlListProperty中转换为nullptr
条目。
值类型的列表与JavaScript数组在另一个重要的方面有所不同:通过设置其长度来增长它不会产生未定义的条目,而是产生值类型的默认构造实例。
同样,以这种方式增长对象类型的列表会生成空条目,而不是未定义条目。
此值类型由QML语言提供。
另请参阅 QML值类型.
© 2024 The Qt Company Ltd. 本文档中的贡献是各自所有者的版权。本文档按照自由软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。Qt及其相应的标志是The Qt Company Ltd.在芬兰以及其他国家和地区的商标。所有其他商标都是其各自所有者的财产。