QVariant支持大部分常见的Qt数据类型互转,比如:
this->setProperty("number", 1);
int number = this->property("number").toInt();
除了基本的数据类型外,还可以使用Q_DECLARE_METATYPE()来向Qt的元系统声明自定义类型,比如说struct
struct MemberInfo
{
QString userName;
QString userID;
QString address;
};
Q_DECLARE_METATYPE(MemberInfo)
在使用QVariant传递自定义数据类型时,需要调用QVariant的setValue或fromValue方法,其中fromValue是静态方法
QVariant var;
var.setValue(info); // info是自定义数据类型
// 或
QVariant var = QVariant::fromValue(info);
取值的时候,不能使用toInt()、toString()等内建的方法, 需要用模版形式
if(var.canConvert<MemberInfo>())
{
MemberInfo info = var.value<MemberIn
本文介绍了如何在Qt中使用QVariant来存储和转换自定义类型。通过Q_DECLARE_METATYPE宏,可以将自定义类型的结构体集成到Qt的元对象系统。在操作时,使用setValue和fromValue方法进行赋值和转换。注意,取值时需使用模板形式而非内置方法。
订阅专栏 解锁全文
628

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



