Ho un metodo in C++ che prevede un oggetto:Come inviare oggetto javascript a C++ da qml?
Q_INVOKABLE void sendValue (const MyClass &value);
mi vuoi richiamarlo da QML, all'interno di una funzione JavaScript, in questo modo:
MyApi.sendValue({
"one":"one",
"two":2.0,
"three": false,
"four": [ 5, 6 ],
}
});
MyClass è definito come segue:
#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
In main.cpp, MyClass è iscritto su qRegisterMetaType<MyClass>();
Ma nessuno dei setter viene chiamato, solo Costruttore di default di MyClass.
Quindi, o mi analizzare un 'QVariantMap' nel metodo C++, o ho definire il mio metodo come questo: ' Q_INVOKABLE vuoto sendValue (const QString & uno, const doppio due, const bool tre, const QList quattro); ' – kazmer
Yep quelle sono le opzioni – vpicaver