我知道我可以使用以下方式将QStringList暴露给QtScript,但是如何公开QVariantHash?
QStringList l;
l<<"2";
QScriptValue v = qScriptValueFromSequence(&engine, l);
engine.globalObject().setProperty("v", v);
答案 0 :(得分:0)
对于标准容器qScriptValueFromSequence()
运行正常。对于其他类型,您可能需要创建自己的转换函数,请查看qScriptRegisterMetaType()
。
答案 1 :(得分:0)
你可以使用engine.toStriptValue()将QVariantMap暴露给QtScript
QVariantMap map;
map["a"] = 3;
map["b"] = 4;
QScriptValue v = engine.toScriptValue(map);
engine.globalObject().setProperty("m", v);
engine.evaluate("var h = new Haha()");
qDebug()<<engine.evaluate("h.add(m)").toString();