QScriptEngine如何同步动态属性到C++

问题描述 投票:0回答:1

我有一个场景,我需要在脚本中动态添加属性 QScriptEngine 动态添加属性后,脚本会为该变量赋值。如何将此值同步到 C++

我一开始使用的是QJSEngine,但是它似乎不支持动态添加属性,所以我改用QScriptEngine来动态添加属性值,但是脚本中变量的更改与c++不同步

#include <QtScript\QScriptEngine>
#include <QDebug>
int main(int argc, char *argv[])
{
    QScriptEngine engine;
    int num = 0;
    engine.globalObject().setProperty("num", num);
    auto res = engine.evaluate("num = 3");
    if (res.isError())
    {
        qDebug() << res.property("message").toString();
    }

}

如何将脚本中的“num”值同步到C++

qt qscript
1个回答
0
投票

瞬间,我在评估后调用了engine.globalObject().property("num").toVariant().toInt();我可以在脚本中获取这个属性的值,因为我的“num”变量很可能是在运行时添加到数组中的,使用property(“num”).tovariant().toint()可能不太方便。我想知道除了这个方法还有没有其他方法可以自动同步变量

© www.soinside.com 2019 - 2024. All rights reserved.