Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法将QVariantMap设置为QML属性_C++_Qt_Dictionary_Qml_Qvariant - Fatal编程技术网

C++ 无法将QVariantMap设置为QML属性

C++ 无法将QVariantMap设置为QML属性,c++,qt,dictionary,qml,qvariant,C++,Qt,Dictionary,Qml,Qvariant,我想将QVariantMap属性导出到QML,所以我正在执行 Q_PROPERTY(QVariantMap myData READ myData) 在myData()函数中,我只需要 QVariantMap map; map.insert("ExampleKey", "key"); return map; 在QML中也是如此 myData.ExampleKey //undefined 或 有人能给我指出一个正确的方向,让我能够将它作为一个简单的JS对象使用吗?感谢BaCaRoZzo找到了最

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

Q_PROPERTY(QVariantMap myData READ myData)
在myData()函数中,我只需要

QVariantMap map;
map.insert("ExampleKey", "key");
return map;
在QML中也是如此

myData.ExampleKey //undefined


有人能给我指出一个正确的方向,让我能够将它作为一个简单的JS对象使用吗?

感谢BaCaRoZzo找到了最佳答案。基本上,qmljavascript使用QVariantMap作为其数组。没有什么需要做的,使用JavaScript数组,你得到QVariantMap,它可以移植到C++。 QML引擎提供QVariantList和JavaScript数组之间以及QVariantMap和JavaScript对象之间的自动类型转换


您的类中有继承QObject的Q_OBJECT宏,是吗?而且,绝对不会调用读取函数(qdebug不会显示)将类作为上下文属性进行测试,如我的示例中所示……公开上下文属性会花费很多时间吗?这是一个非常小的测试添加。这将有助于定位您的问题是否是类和/或您试图公开它的方式。不管怎样,我们确实需要一个。请给我们看一下你的班级资料。。
myData["ExampleKey"] //undefined