QJSEngine 注册c++ 类
js文件,内容如下
var aa_bb = {
text:"test123",
run:function()
{
this.dialog.show();
}
}
aa_bb;
c++代码
QJSEngine jsEngine
QJSValue qsScript = jsEngine.evaluate(script); //script就是上边字符串
QJSValue qsDialog = interpreter.newQObject(dialog);
qsScript.setProperty("dialog", qsDialog); //注册
qsScript.property("run").call(); //调用js中run方法,js中用到dialog,c++中已注册
这样调用后,提示show方法不存在
注册全局的可以用,但这不是我要用的,有人知道怎么回事吗?
jsEngine.globleObject().setProperty("dialog", qsDialog); //注册全局可以用,不是我要的