【发布时间】:2013-02-28 17:09:07
【问题描述】:
是否可以让 QObject 可以从 Java Script 调用? 我的意思是像这样注册 QObject 派生类实例:
QObject* obj = new MyObject();
QJSValue js_value = js_engine.newQObject(obj);
js_engine.globalObject().setProperty("myFunction", js_value);
然后能够从 Java Script 调用 myFunction
myFunction()
环境:Qt 5.0.1
编辑:此操作的主要目的是在 Java Script 引擎中注册 C++ 函数或仿函数,并使其不是作为对象的属性而是作为独立函数使用。
【问题讨论】:
-
make QObject callable是什么意思?使其成员函数可访问?根据您的标签列表:您是否尝试从 QML 属性绑定中的 JavaScript 访问您的 C++ 对象之一? -
而Qt提供了一个很好的例子:apidocs.meego.com/1.2/qt4/webkit-imageanalyzer.html
-
axxel,我在 callable 下的意思是当 QJSValue::isCallable() 返回 true 时。反过来,这意味着可以从 JS 调用该对象。不仅是其中一种方法,还有对象本身。
-
@Maxym,C++ 对象不能被称为自身。无论是在 C++ 中还是在 JS 中。可以调用方法。在我看来,您想调用
obj类的某些方法。正如之前提到的 axxel。
标签: qt qml qt5 qt-quick qtquick2