10

据我了解,要在 QML 中将属性设为数组,您必须将其指定为类型variantvar

property var myArray:[]

这似乎与以下内容完全相同:

property variant myArray:[]

这是真的?

4

2 回答 2

11

根据Qt 5.0 变体文档

变体类型是通用属性类型。它已过时,仅用于支持旧应用程序;新应用程序应该使用var类型属性。

所以是的,它是一样的,但你应该始终坚持var(除非你有一个不支持的早期版本)。

于 2013-10-25T06:30:21.873 回答
3

这不是一个全新的答案,但包含有关@Tim Meyer 根据我自己的经验提供的答案的附加信息:

  1. 对于 Qt 4.* 或 QtQuick 1.*,property variant必须使用,否则会产生 QML 解析错误。
  2. 对于 Qt 5 或 QtQuick 2.*,可以使用property variantproperty var。但建议使用后一种,因为前一种已被弃用。
  3. Qt 4property variant或 Qt 5property var可用于 QML 数组或列表声明/定义。myArray但如果事先知道的类型和不变的内容,property list<Type>也可以使用。例如:

    属性列表< Item> myArray:[项目{},项目{}]

于 2016-03-02T22:32:28.940 回答