我正在閱讀Qt腳本編寫的文檔,並提出它是完全混淆和充分,如果錯誤指導文本。有些人可以用簡單的英語解釋如何包裝一個函數並在包裝後用腳本代碼訪問它。下面列出了我的例子。 包裝功能。這是一個簡單的包裝,我需要返回作爲參數傳遞的字符串。以下是代碼。Qt腳本函數包裝
#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"
如果我正確地理解這個,這是我應該做的,如果我叫engine.newObject(),因爲它在文檔的功能被提及呢甚至沒有被召喚。
我在這裏沒有得到的是,我在func.setproperty行中分配的屬性是什麼,以及我在設置屬性foo後該怎麼做。我如何在函數中設置一個值。
我很感謝,如果有人解釋我在做什麼錯在這裏。
這是一個偉大的description..Thank你... – Tharanga