当前位置: 代码迷 >> 综合 >> QMap+QVariant容器
  详细解决方案

QMap+QVariant容器

热度:16   发布时间:2023-12-25 11:36:03.0

一般情况,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>();
}