QScriptEngine有evaluate()方法,可用于加载脚本,执行它并从已加载的脚本运行指定的函数.但是如何清除当前脚本并加载新脚本呢?例如,我使用evaluate()从文件加载脚本,然后使用evaluate()来获取脚本函数并调用它们.但是,如何清除当前脚本并从另一个文件加载新脚本呢?删除和创建QScriptEngine似乎是一个解决方案,但它喜欢在GUI线程中创建(由于QScriptEngineDebugger),而所有脚本操作都在单独的线程中执行.那么在不重新创建QScriptEngine对象的情况下清除当前脚本的方法是什么?
engine.pushContext();
engine.evaluate("...");
engine.popContext();
engine.pushContext();
engine.evaluate("...");
engine.popContext();
Run Code Online (Sandbox Code Playgroud)
在评估脚本之前调用pushContext()并在评估新脚本之前调用popContext()将有效地清除所有脚本数据.
归档时间: |
|
查看次数: |
1398 次 |
最近记录: |