Qt 如何在QML中声明列表属性
如何在QML中声明列表属性(在我的示例中用于Qt 如何在QML中声明列表属性,qt,qml,qt5,qtquick2,Qt,Qml,Qt5,Qtquick2,如何在QML中声明列表属性(在我的示例中用于Qt.labs.settings): 不起作用。我尝试了许多其他选项:列表,字符串[],等等。似乎都不起作用 Settings { property var recentFiles: [] } 列表只能存储QML对象,不能包含任何基本类型 价值观 string是一种基本类型,所以不能将其存储在列表中。 为此,您最好使用property var recentFiles,因为您询问的是list属性(“list”关键字),那么以下语法似乎有效:
Qt.labs.settings
):
不起作用。我尝试了许多其他选项:列表
,字符串[]
,等等。似乎都不起作用
Settings {
property var recentFiles: []
}
列表只能存储QML对象,不能包含任何基本类型 价值观 string是一种基本类型,所以不能将其存储在列表中。
为此,您最好使用
property var recentFiles
,因为您询问的是list属性(“list”关键字),那么以下语法似乎有效:
property list<Rectangle> rectList: [
Rectangle { id: a; },
Rectangle { id: b; }
]
Rectangle { id: c }
Component.onCompleted: {
console.log("length: " + rectList.length)
rectList.push(c)
console.log("length: " + rectList.length)
}
但我认为“rectList”也会接受以下内容:
MouseArea { id: mArea; }
..
rectList.push(mArea)
这没有道理。命令建议/自动完成在Qt Creator中不适用于此语法。我猜这是某种遗留语法,不应该在新的应用程序中使用。您应该使用其他答案建议的内容:
属性变量myList:[]
然后,Qt Creator会为您提供更好的支持
“列表”的文档上写着[1]:
列表只能存储QML对象,不能包含任何基本类型值。(要在列表中存储基本类型,请改用var类型。) 因此,以下内容无法编译:
property list<int> intList: []
属性列表intList:[]
这些文件还说:
“注意:不建议将列表类型作为自定义属性的类型。为此,应使用var类型,因为var类型存储的列表可以在QML中以更大的灵活性进行操作。”
[1] property variant recentFiles:[]“列表只能存储QML对象,不能包含任何基本类型值。(要在列表中存储基本类型,请改用var类型。)”这很有效,谢谢。关键字
列表
的用途是什么?
MouseArea { id: mArea; }
..
rectList.push(mArea)
property list<int> intList: []