当我调用以下功能时,它会崩溃
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);
如果我传递包含原始数据类型的地图
,上述功能可以正常工作QVariantMap abc;
abc["name"]="nik";
QVariant var=QVariant(abc);
setData(var);
QVariantMap
包含非原始值时会有区别吗?
答案 0 :(得分:1)
您正在做的是创建一个错误的QVariant&
。
QVariantMap
不是QVariant
也不能归结为一个,因为它不会从QVariant
继承。
QVariantMap
是QMap<QString, QVariant>
你可能打算做的是:
QVariantMap abc;
abc["name"]="nik";
setdata(abc["name"]);