0

我正在使用 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();
}

示例: http ://harmattan-dev.nokia.com/docs/library/html/qt4/qscriptengine.html

向下滚动到“本机功能”


浏览另一个有问题但也没有解决方案的用户: Using a member function with QScriptEngine::newFunction

4

2 回答 2

0

尝试使用int第二个参数。QScriptValueint相关。

编辑:好的,刚刚意识到还有另一种可能的组合 using QScriptValue,但您可能还必须传递 anint并制作fun一个常量。

希望能帮助到你。

于 2013-08-08T15:11:40.940 回答
0

用作基础: 在 C++ 中传递成员函数指针

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

于 2013-08-08T16:12:32.080 回答