Qt 4.8ではC++側からローカル値をQScriptEngine
に設定できますか?評価する前にQScriptValue-local値を設定する
たとえば、のは、私が持っているとしましょう:
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
明白な解決策はただ作ることです"loc" globalとset +それに応じてリセットしますが、私が探しているものではないこの質問から気をそらす理由でそれをリセットします。私が欲しい:
- を「LOC」、人為的に、例えば、スクリプト文字列を変更しない場合は、各
QScriptValue
- にローカルであると
QString().sprintf("loc = %d;", 42)
の前に付いているか、スクリプトには何でも。 QScriptEngine
を1つだけ使用する。QScriptValue expr1 = engine.evaluate("glob + loc"); expr1.setProperty("loc", 42); qDebug() << expr1.toNumber();
しかし、それは価値がすでに完全に
evaluate()
によって評価されるので、setProperty()
は何の影響(そこには驚きを)持っていないようだ:私は本当にしようとすると考えることができ
唯一のものでした。
私はまた、プログラムローカル環境を提供することを望んで、QScriptProgram
でピークを見ました。
I がドキュメントで探しています、と私はこれを投稿した後、それらを見ていきますが、これは私がQScriptEngine
を使用していると私は私の脳がドロドロに回っていることを是認しなければならない最初の時間であるだろうので、私それが正しければ謝罪してください。私はRTFMを有効な回答として受け入れます。