一般情况,QVariant只会装QT的基类。如果要存储自定义类型则:
//注册自定义类型
Q_DECLARE_METATYPE(ImageView)
QMap<QString, QVariant> dataMap;
void setData(const QString& str, const QVariant& qvar)
{dataMap[str] = qvar;
}
QVariant getData(const QString& str)
{if (dataMap.contains(str)){return dataMap[str];}return QVariant();
}
int main()
{QVariant imageview;imageview.setValue(view[0]);setData("ALeftView", imageview);ImageView view0 = getData("ALeftView").value<ImageView>();
}