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;