如何将javascript对象发送到C++;来自qml? 我有一个C++方法,它期望一个对象: Q_INVOKABLE void sendValue (const MyClass &value);

如何将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

我想在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 {
    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四);代码>是的,这些是选项。