如何将QVariantHash变量公开给QtScript?

时间:2013-07-08 09:00:48

标签: qt qtscript

我知道我可以使用以下方式将QStringList暴露给QtScript,但是如何公开QVariantHash?

QStringList l;
l<<"2";
QScriptValue v = qScriptValueFromSequence(&engine, l);
engine.globalObject().setProperty("v", v);

2 个答案:

答案 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();