无法将 QVariantMap 设置为 QML 属性
Cannot set QVariantMap as QML property
我想将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
相关文章:
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- Qt Quick-如何仅从c++代码与qml属性交互
- 如何将类的属性从 c++ 获取到 QML 中
- 是否可以在单独的线程中将 QObject 设置为 QML 上下文属性?
- 属性分配无效:"displayText"是文本字段 qml 中的只读属性
- QVariants 在 QML 中的C++和属性中的使用
- 在 QML 中更改父属性时更改子属性
- 从C++使用编译时安全性更改 QML 属性
- Javascript 函数作为从 c++ 定义的 QML 属性
- 如何将C++属性绑定到 QML 属性
- 当连接的 QML 属性更改时C++对象不会获取值
- C++对象的属性的 QML 属性
- 无法将 QVariantMap 设置为 QML 属性
- Qml属性挂钩
- 如何在C++中动态添加/删除QML属性
- Qt 5.1通过线程的QML属性
- 如何在依赖属性更改时重新计算绑定到 qml 属性的 c++ 函数
- 具有多个线程的 QML C++ 属性绑定
- 在Qt c++中枚举QML属性
- 自定义类型的Qml属性