QVariant与自定义类型互转

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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章