如何将javascript对象发送到C++;来自qml? 我有一个C++方法,它期望一个对象: Q_INVOKABLE void sendValue (const MyClass &value);
我想在javascript函数中从qml调用此方法,如下所示:如何将javascript对象发送到C++;来自qml? 我有一个C++方法,它期望一个对象: Q_INVOKABLE void sendValue (const MyClass &value);,javascript,c++,qml,Javascript,C++,Qml,我想在javascript函数中从qml调用此方法,如下所示: MyApi.sendValue({ "one":"one", "two":2.0, "three": false, "four": [ 5, 6 ], } }); MyClass的定义如下: #ifndef MYCLASS_H #define MYCLASS_H #include <QString> #include <QVariant> class MyClass
MyApi.sendValue({
"one":"one",
"two":2.0,
"three": false,
"four": [ 5, 6 ],
}
});
MyClass的定义如下:
#ifndef MYCLASS_H
#define MYCLASS_H
#include <QString>
#include <QVariant>
class MyClass {
QString one;
double two;
bool three;
int four[10];
public:
MyClass();
~MyClass();
// getters, setters, etc.
};
Q_DECLARE_METATYPE(MyClass)
#endif // MYCLASS_H
\ifndef MYCLASS\u H
#定义MYCLASS_H
#包括
#包括
类MyClass{
QString-one;
双二;
布尔三;
int-four[10];
公众:
MyClass();
~MyClass();
//能手、二传手等。
};
Q_DECLARE_元类型(MyClass)
#endif//MYCLASS\u H
在main.cpp中,MyClass使用qRegisterMetaType()注册代码>
但是没有一个setter被调用,只有MyClass的默认构造函数被调用 > P>可以通过Que>QValeMPLATA/<代码>和JavaScript数组,通过<代码> QValueList将QJAScript对象发送到C++。另一方面,您可以使用C++从代码中发送JavaScript对象到QML > qValPoMAP> <代码>。只需在C++代码> Qy可可调用< /代码>或一个插槽中实现函数,并使参数为“代码> qValand映射< /COD>”,并将该<代码> qValPATMAP> <代码>转换为<代码> MyClass {} /COD> < < /P>
<详细查看(搜索QVariantList和QVialTangMax到JavaScript数组和对象).< /P>,否则我在C++方法中解析<代码> qValPATMAP> <代码>,或者我定义我的方法如下:<代码> qy可调用空隙sEdValuy(const qStand和一,const 22,const BooL三,const QList四);代码>是的,这些是选项。