我试图将一个对象作为全局属性公开给Java Script,其中包含以下方法:
Q_INVOKABLE MyObject* createMyObject();
Run Code Online (Sandbox Code Playgroud)
MyObject派生自QObject.
当我在Java Script中调用此方法时,它返回一个类型为的对象:
QVariant(MyObject*)
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以自动将其转换为QJSValue,以便我可以在脚本中进一步使用它?
需要做的就是在脚本中引用MyObject之前调用下面的方法。
qmlRegisterType<MyObject>("", 1, 0, "MyObject");
Run Code Online (Sandbox Code Playgroud)
然后createMyObject方法将返回正确的类型,无需任何转换:
var obj = createMyObject();
MyObject
Run Code Online (Sandbox Code Playgroud)
实际上如果我们改变下面方法的类型
Q_INVOKABLE MyObject* createMyObject();
Run Code Online (Sandbox Code Playgroud)
到
Q_INVOKABLE QObject* createMyObject();
Run Code Online (Sandbox Code Playgroud)
即使没有它也会开始工作
qmlRegisterType
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3877 次 |
| 最近记录: |