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