list QML Value Type
一个 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 列表中。
如果列表中仅包含一个对象,则可以省略方括号:
您还可以在 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 数组不同:通过设置其长度来扩展列表时,不会产生 undefined 条目,而是会生成该值类型的默认构造实例。
同样,以这种方式扩展对象类型的列表会产生 null 条目,而不是 undefined 条目。
该值类型由 QML 语言提供。
另请参阅 QML 值类型。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.