在Qt 4.8中,從C++端有可能在QScriptEngine
中設置QScriptValue
- 本地值?在評估之前設置QScriptValue - 本地值
例如,假設我有:
QScriptEngine engine;
engine.globalObject().setProperty("glob", 1000);
// ???: Set loc to, say, 42.
QScriptValue expr1 = engine.evaluate("glob + loc");
qDebug() << expr1.toNumber();
// ???: Set loc to, say, 99.
QScriptValue expr2 = engine.evaluate("glob + loc");
qDebug() << expr2.toNumber();
而且我想,它的輸出是:
1042
1099
顯而易見的解決人爲的例子上面只作「祿」全球和設置+相應地重置,但由於這個問題,這不是我正在尋找分心的原因。我想:
- 「祿」是本地到每個
QScriptValue
- 要不要人爲修改由例如劇本串在腳本前面加上
QString().sprintf("loc = %d;", 42)
或其他什麼。 - 只能使用一個
QScriptEngine
。
我真的想嘗試的唯一的事情就是:
QScriptValue expr1 = engine.evaluate("glob + loc");
expr1.setProperty("loc", 42);
qDebug() << expr1.toNumber();
但似乎值已經完全evaluate()
評估等setProperty()
沒有效果(這並不奇怪)。
我也看過QScriptProgram
希望它提供了一個程序本地環境,但唉。
我是看文檔,並將繼續看着他們,我張貼此之後,但這是我第一次使用QScriptEngine
,我不得不承認我的大腦轉向玉米粥,所以我道歉,如果它在那裏,而且完全明顯。我將接受RTFM作爲有效答案。