javascript からアクセスできるスロット関数から、いくつかのプリミティブを含む JavaScript オブジェクトに変換されたデータになりたいので、QVariantMap を返します。
コードは次のようになります。
QVariantMap MyObject::createResults()
{
QVariantMap ret;
ret["num"] = 23948;
ret["str1"] = QString("bla");
ret["str2"] = QString("blub");
return ret;
}
呼び出しスクリプトは次のようになります。
var myObj = new MyObject();
var res = myObj.createResults();
api.cout("typeof(res); = " +typeof(res));
api.cout("typeof(res.num); = " +typeof(res.num));
api.cout("typeof(res.str1); = " +typeof(res.str1));
api.cout("typeof(res.str2); = " +typeof(res.str2));
次の出力が生成されます。
typeof(res); = object
typeof(res.num); = object
typeof(res.str1); = string
typeof(res.str2); = string
C ++側で何をしなければなりませんtypeof(res.num)
かnumber
?
使用バージョンは Qt 4.8.2