C++ 将QScript引擎与";“本机函数”;呼叫QT示例。。。失败:“;对';QScriptEngine::newFunction'&引用;?

C++ 将QScript引擎与";“本机函数”;呼叫QT示例。。。失败:“;对';QScriptEngine::newFunction'&引用;?,c++,qt,qt-creator,C++,Qt,Qt Creator,我正在使用Qtcreator提供的一个示例,并得到这个错误 void MainWindow::hBtn { QScriptEngine e; QScriptValue fun = e.newFunction(myAdd); // ERROR: No matching function... e.globalObject().setProperty("myAdd", fun); QScriptValue result = e.evaluate("myAdd(m

我正在使用Qtcreator提供的一个示例,并得到这个错误

void MainWindow::hBtn
{
    QScriptEngine e;

    QScriptValue fun = e.newFunction(myAdd);  // ERROR: No matching function...
    e.globalObject().setProperty("myAdd", fun);

    QScriptValue result = e.evaluate("myAdd(myNumber, 1)");
}


QScriptValue myAdd(QScriptContext *context, QScriptEngine *engine)
//also tried:  QScriptValue MainWindow::myAdd(QScriptContext *context, QScriptEngine *engine) //fails as well with same ERROR
{
   QScriptValue a = context->argument(0);
   QScriptValue b = context->argument(1);
   return a.toNumber() + b.toNumber();
}


例如:

向下滚动至“本机函数”



查看了另一个用户的问题,但也没有解决方案:

尝试使用
int
作为第二个参数
QScriptValue
int
无关

编辑:好的,刚刚意识到使用
QScriptValue
还有另一种可能的组合,但是您可能还需要传递
int
并使
有趣
成为常量

希望有帮助。

用作基础:


我从header类中取出了“myAdd”声明。。。问题已解决。

我尝试了另一个示例。。。问题在于engine.newFunction()??我帮不了你。我必须测试一下,但我不能。然而,您是否按照我的建议尝试实现参数组合?