让自定义类型放到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;
}
参考: