我用 C++ 声明我的对象
class Action : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name)
public:
Action(): QObject(0) {}
QString name() const { return "rem"; }
Q_INVOKABLE void getData() {};
}
并将其提供给 qml:
engine()->rootContext()->setContextProperty("action", new Action());
如何传递给 getData() 方法javascript函数作为参数并在C++端调用这个函数?
所以从 QML 的角度来看,它应该看起来像:
action.getData(function(data) { alert(data); });
可以使用QJSValue http://doc.qt.io/qt-5/qjsvalue.html。例如:
//C++
Q_INVOKABLE void getData(QJSValue value) {
if (value.isCallable()) {
QJSValueList args;
args << QJSValue("Hello, world!");
value.call(args);
}
}
//QML
action.getData(function (data){console.log(data)});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)