我知道我可以使用以下方式将 QStringList 公开给 QtScript,但是如何公开 QVariantHash?
QStringList l;
l<<"2";
QScriptValue v = qScriptValueFromSequence(&engine, l);
engine.globalObject().setProperty("v", v);
您可以使用 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();
对于标准容器qScriptValueFromSequence()
运行良好。对于其他类型,您可能必须创建自己的转换函数,请查看qScriptRegisterMetaType()
.