gpt4 book ai didi

c++ - 将 Javascript 函数作为参数传递给 C++ 函数

转载 作者:可可西里 更新时间:2023-11-01 15:51:11 24 4
gpt4 key购买 nike

我在 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());

如何将 javascript 函数作为参数传递给 getData() 方法,并在 C++ 端调用此函数?

所以从 QML 的角度来看,它应该是这样的:

action.getData(function(data) { alert(data); });

最佳答案

可以使用 QJSValue .例如:

//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)});

关于c++ - 将 Javascript 函数作为参数传递给 C++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29455675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com