[英]How invoke method of the object created from C++ in QML?
I need dynamically run JavaScript to operate some C++ object from the simulation. 我需要动态运行JavaScript才能从模拟操作一些C ++对象。
Example: 例:
class CppToQML : public QObject{
Q_INVOKABLE CppClass* getObj(int i);
QList<CppClass*> mList;
}
First, i have a CppToQML
class which is registed into QML. 首先,我有一个注册到QML中的
CppToQML
类。
qmlRegisterType<CppToQML>("CppToQML", 1, 0, "CppToQML");
The CppClass
is created in C++ side and stored in CppToQML mList
CppClass
在C ++端创建,并存储在CppToQML mList
class CppClass : public QObject {
Q_INVOKABLE void sayHello();
}
I am trying to do this in QML javascript: 我正在尝试在QML javascript中执行此操作:
CppToQML {
id: cppToQML
}
//javascript
cppToQML.getObj(0).sayHello();
Problem is QML can not recognize CppClass
pointer as a data type. 问题是QML无法将
CppClass
指针识别为数据类型。
For QML to recognize the class you must register it: 为了使QML能够识别该类,您必须注册它:
qmlRegisterType<CppClass>("CppToQML", 1, 0, "CppClass");
or: 要么:
qmlRegisterType<CppClass>();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.