美文网首页Qt QML 杂记
QML中的var和variant有什么不同

QML中的var和variant有什么不同

作者: 赵者也 | 来源:发表于2020-08-13 16:56 被阅读0次

根据 Qt 5 中 variant 的文档描述来看:

variant 类型和 var 类型一样在 QML 中都是泛型属性类型。只是 variant 类型已经过时了,仅用于支持旧的应用程序(向后兼容使用);新的 QML 应用程序应该使用 var 类型属性。

所以,总结一句话就是,除非我们的应用程序还在支持比较老的版本的 Qt,否则不要在 QML 的代码中使用 variant 类型。

下面是使用建议:

  • Qt 4.* 或者 QtQuick 1.* 中使用 variant 类型。
  • Qt 5.* 或者 QtQuick 2.* 中最好使用 var 类型。
  • QML 数组或列表的声明/定义(declaration/definition)可以使用 Qt 4 的 variant 类型或 Qt 5 的 var 类型。但是如果预先知道 myArray 的类型和不可更改的内容,也可以使用属性 list<type>。例如:
property list<Item> myArray: [ Item {}, Item {} ]

另外,在我的文章 QML 性能上的注意事项和建议 中的“类型转换”部分也有介绍:“property var” 应被视为优于 “property variant” (请注意,“property variant” 被标记为已过时),因为它允许存储真正的 JavaScript 引用(这可以减少某些表达式中需要的转换次数)。

参考链接:

  1. Are “var” and “variant” the same thing?
  2. QML 性能上的注意事项和建议

相关文章

网友评论

    本文标题:QML中的var和variant有什么不同

    本文链接:https://www.haomeiwen.com/subject/iihidktx.html