我正在使用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
答案 0 :(得分:0)
尝试使用int
作为第二个参数。 QScriptValue
与int
无关。
编辑:好的,刚刚意识到使用QScriptValue
还有另一种可能的组合,但您可能还必须传递int
并使fun
成为恒定。
希望它有所帮助。
答案 1 :(得分:0)
用作基础:Pass member function pointer in C++
我从标题类中取出了“myAdd”声明......问题解决了。