以下の方法を使用して 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()
。