无法将 QVariantMap 设置为 QML 属性

Cannot set QVariantMap as QML property

本文关键字:QML 属性 设置 QVariantMap      更新时间:2023-10-16

我想将QVariantMap属性导出到 QML,所以我正在做

Q_PROPERTY(QVariantMap myData READ myData)

在 myData(( 函数中,我只是做

QVariantMap map;
map.insert("ExampleKey", "key");
return map;

在 QML 中

myData.ExampleKey //undefined

myData["ExampleKey"] //undefined

有人可以指出我正确的方向,以便能够将其用作简单的JS对象吗?

感谢BaCaRoZzo找到最佳答案。基本上,QML JavaScript 使用 QVariantMap 作为其数组。不需要做更多的事情,使用 JavaScript 数组,你会得到 QVariantMap,它可以传输到C++。

QML 引擎提供 QVariantList 和 JavaScript 数组之间以及 QVariantMap 和 JavaScript 对象之间的自动类型转换。

http://doc.qt.io/qt-5/qtqml-cppintegration-data.html#qvariantlist-and-qvariantmap-to-javascript-array-and-object