当我调用下面的函数时,它崩溃了
void RequestBuilder::setData(QVariant &data)
{
this->data=data;
}data中包含一个QVariantMap (data还包含作为QVariantMap的值)。而且this->data也是QVariant。
下面是调用该函数时的更多细节。
QVariantMap in,out;
in["name"]="nik";
out["details"]=in;
out["other"]="something";
QVariant param=QVariant(out);
setData(param);如果我传递包含原始数据类型的map,上面的函数就能正常工作
QVariantMap abc;
abc["name"]="nik";
QVariant var=QVariant(abc);
setData(var);当QVariantMap包含非原始值时有区别吗?
发布于 2014-12-01 21:44:46
您正在做的是创建一个坏的QVariant&。
QVariantMap不是QVariant,也不能向下转换为1,因为它不是从QVariant继承的。
QVariantMap是一个QMap
你可能想要做的是:
QVariantMap abc;
abc["name"]="nik";
setdata(abc["name"]);https://stackoverflow.com/questions/27229443
复制相似问题