私はQtScriptingのドキュメントを調べていますが、テキストを誤ってガイドすると、完全に混乱し、完全になります。関数をラップし、ラップ後にスクリプトコードでアクセスする方法を簡単な英語で説明してください。以下に私の例を含めました。ラッパー関数。これは単純なラッパーであり、パラメーターとして渡された文字列を返す必要があります。以下はコードです。
#include <QApplication>
#include <QtScript/QScriptEngine>
#include <QtScript/QScriptContext>
#include <QDebug>
QScriptValue returnProperty(QScriptContext *context , QScriptEngine *engine)
{
qDebug() << "running returnValues Function "<< context->argument(0).toString();
return context->thisObject().property("returnValue");
}
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QScriptEngine engine;
//Evaluating a simple expression
qDebug() << engine.evaluate("1+2").toNumber();
QScriptValue func = engine.globalObject();
func.setProperty("foo",engine.newFunction(returnProperty),QScriptValue::PropertyGetter);
engine.evaluate("var v= foo('name') ; print( 'This prints values from addValues function :',v) ;");
}
そして、出力は次のようになります
3
Running returnValues Function "undefined"
私がこれを正しく理解している場合、これは私がすべきことであり、doc関数で言及されているようにengine.newObject()を呼び出すと、呼び出されることさえありません。
ここで得られないのは、func.setproperty行で割り当てているプロパティと、設定したプロパティfooで何ができるかということです。関数に値を設定するにはどうすればよいですか。
ここで私が間違っていることを誰かが説明してくれれば幸いです。