让自定义类型放到QVariant只需要添加一个宏,同时自定义类型的成员都应该是Qt类型或者基础类型即可。
这样就可以让自定义类型对象和QVariant对象之间互相转换了。
#include <QDebug>
//先声明类
class Test{
public:
QString myName;
};
//注册自定义类型
Q_DECLARE_METATYPE(Test)
int main(int argc, char *argv[])
{
Test test;
test.myName="wang";
QVariant t;
t.setValue(test);
Test t1=t.value<Test>();
qDebug()<<t1.myName;
return 0;
}
参考:
通过添加特定宏,可以实现Qt的QVariant对自定义类型的支持。只要自定义类型的成员为Qt类型或基础类型,就能方便地在自定义类型对象与QVariant对象之间进行转换。参考优快云博客关于QVariant自定义类型的教程。
8762

被折叠的 条评论
为什么被折叠?



