我的应用程序同时使用了C++和QML。
我在C++部分定义了几个对象来访问SQL等内容。
它看起来像这样:
class MyObject : public QObject
{
Q_OBJECT
public:
MyObject(QObject *parent = 0);
Q_INVOKABLE void someFunction(const QString &query);
};
qmlRegisterType<MyObject>("xxx.xxx", 1, 0, "MyObject");
理想情况下,我只需要在Javascript中使用这些对象而不是在QML中使用。
我尝试了很多例子并阅读了所有文档,但仍然无法解决我的问题。
所以我的问题是:
- 如何在Javascript中实例化一个在C++中定义的对象?我尝试使用
var obj = Qt.createComponent("MyObject");
,但似乎没有起作用。是否可以按照常规JS样式定义新对象-var obj = new MyObject;
? - 如何在javascript中访问此创建的对象?我尝试使用obj.someFunction("xxx")但出现了错误-
TypeError: Property 'someFunction' of object QQmlComponent(0x3605f5c0) is not a function.
我在这里做错了什么?我的对象派生自QObject,而不是QQmlComponent。