被转换的自定义数据类型声明如下,重载QVariant与将自定义数据类型注册为元数据缺一不可。
struct Customtype
{
// 参数列表
// programlist
// 重载了类型转换操作符,将当前类型转换为 QVariant 类型
// 在这个函数中,使用了 QVariant::fromValue 方法
// 该方法可以将自定义类型转换为 QVariant 对象,并返回转换后的结果
operator QVariant() const
{
return QVariant::fromValue(*this);
}
};
//Q_DECLARE_METATYPE 是一个宏,用于将自定义类型注册到Qt的元对象系统中,
//以便在信号和槽之间传递自定义类型的数据。当使用 Q_DECLARE_METATYPE 将
//自定义类型注册到元对象系统后,就可以在Qt应用程序中使用该类型作为参数进
//行信号和槽的连接,以及在跨线程通信时进行类型转换。
Q_DECLARE_METATYPE(Customtype)
将QVariant转为自定义数据类型
// 将 QVariant 转换为自定义数据类型
QVariant variant = ...; // 从某个地方获取到 QVariant 对象
Customtype customtype = variant.value<Customtype>();