QVariant原本就支持了很多的类型,如int、double、QString、QSize等。
那么,如何让QVariant支持自定义类型。
只需使用一条Q_DECLARE_METATYPE,将类型定义为元数据类型,即可。
struct Student
{
QString name;
int age;
};
Q_DECLARE_METATYPE(Student)
自定义类型与QVariant互转
Student stu1;
stu1.name = "hh";
stu1.age = 10;
// 自定义类型转QVariant
QVariant variant1;
variant1.setValue<Student>(stu1);
// QVariant转自定义类型
Student stu2;
stu2 = variant1.value<Student>();
qDebug() << stu2.name << stu2.age;