qtscript

    5熱度

    1回答

    我必須在C++應用程序中運行一系列javascript腳本。他們大多數是重複行動。代碼示例here。 我知道Qt自版本5以來包含2個JavaScript引擎:QtScript和QJSEngine。 我的問題是我們應該在哪種情況下使用這個或另一個?哪個表現更好,在哪些情況下?

    0熱度

    1回答

    我正在看看QScxml ECMAScript數據模型,因爲我從來沒有使用Qt的任何腳本功能我有點失落。 我看到Qt有不同的腳本引擎(QtScript,QJSScript,QQMLEngine),它們都與ECMAScript標準兼容。 所以我不是他們指得是何種腳本編寫語言真的相信而QScxmlEcmaScriptDataModel 的QScxmlEcmaScriptDataModel類是一個Qt S

    0熱度

    1回答

    所以我有這樣的代碼: QScriptValue result(someFunction()); if(result.isArray()) { { // Print items in array } 我該怎麼辦呢?我試圖將其轉換爲QList<QScriptValue>但這不起作用。我認爲這樣做: const int length = (int)result.property("l

    1熱度

    1回答

    此前的Qt 5.4,我可以在QtScript模塊加入 QT += script 我.pro文件添加到我的構建。但是,當我嘗試使用Qt 5.4構建項目時,qmake將'腳本'標記爲未知模塊。 我可以看到我的庫文件夾中的QtScript共享對象。 在任何Qt 5.4發行說明中,我找不到任何對此的引用。

    0熱度

    1回答

    我在驗證QtScript腳本中的值時遇到了一些問題。驗證器功能如下所示: function isValueInvalid(value) { return typeof value=="undefined" || value == null || value == "" || value == "X"; } 字符串"X"在我的設置中也是無效值。該值被添加到一些對象是這樣的: some

    0熱度

    1回答

    我想這個方法傳遞: QScriptValue ScriptProcessContext::construct(QScriptContext * ctx, QScriptEngine *) { return this->newInstance(); } 到QScriptEngine::newFunction。我嘗試了以下選項: 如文檔and also this example co

    1熱度

    1回答

    我需要同時運行多個(最多50個或更多)Qt腳本函數。使用腳本函數運行兩個或三個線程工作得很好,但只要運行50個線程,就會出現一個錯誤,並且我的程序崩潰。 ASSERTION FAILED: globalData().dynamicGlobalObject (..\3rdparty\javascriptcore\JavaScriptCore\runtime/JSGlobalObject.h:411

    0熱度

    1回答

    在Qt 4.8中,從C++端有可能在QScriptEngine中設置QScriptValue - 本地值? 例如,假設我有: QScriptEngine engine; engine.globalObject().setProperty("glob", 1000); // ???: Set loc to, say, 42. QScriptValue expr1 = engine.evalu

    6熱度

    1回答

    在Qt 4.8的腳本引擎中,「本地」變量可以由obtaining a QScriptContext from QScriptEngine::pushContext then setting the properties of its activation object設置。這隻能推/彈出呼叫內完成,因爲這是唯一的地方QScriptContext可用並且AFAICT不存在QScriptEngine#

    0熱度

    1回答

    我試圖通過捕獲函數條目並退出,通過QScriptEngineAgent實現簡單的QtScript性能分析器。我成功訂閱了QScriptEngineAgent::functionEntry()回調。現在,是否有可能獲得被調用的函數的名稱(字符串),在這個回調中? 即使我知道並非所有的腳本函數都需要有一個名字,即使在最簡單的情況下它似乎也不起作用。 QScriptContextInfo爲此提供了便利,