写入QVariantmap的int在Javascript中不是数字
从一个可以从javascript访问的slot函数中,我返回一个QVariantMap,因为我希望将数据转换为包含一些原语的javascript对象 代码如下所示:写入QVariantmap的int在Javascript中不是数字,javascript,c++,qt,qtscript,Javascript,C++,Qt,Qtscript,从一个可以从javascript访问的slot函数中,我返回一个QVariantMap,因为我希望将数据转换为包含一些原语的javascript对象 代码如下所示: QVariantMap MyObject::createResults() { QVariantMap ret; ret["num"] = 23948; ret["str1"] = QString("bla"); ret["str2"] = QString("blub"); return ret; }
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));
调用脚本如下所示:
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++方面,我必须做什么?Type Fr.nUm是数字?< /P>
使用的版本是Qt 4.8.2您正在做一些错误的事情,或者可能是Qt版本中的一个错误。在我的Qt5.3.1上构建它输出的数字。我在Qt4.8.5上也尝试过,结果相同。不幸的是,我不能使用Qt5,我不知道我做错了什么,但我认为这可能是一个错误。对于C++方面的解决方案有什么想法?幸运的是,在JS中使用Numberres.num确实给出了正确的数字,但它是在客户端。