Qt报错整理-Q_DECLARE_METATYPE

1、Q_DECLARE_METATYPE

进行数据绑定时候,出现这个bug错。

error: C2338: Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt。

原因:使用了QVariant::fromValue(user),QVariant对象使用前需进行类型声明。

如下:对定义的类型进行声明

Q_DECLARE_METATYPE(类型)

// 用户信息
 
struct User : QObjectUserData {
 
int nID; // ID
 
QString strName; // 用户名
 
};
 
 
// 语言
 
typedef enum{
 
UI_ZH, // 中文
 
UI_EN // 英文
 
} LANGUAGE;
 
 
Q_DECLARE_METATYPE(User)
 
Q_DECLARE_METATYPE(LANGUAGE)

备注:

遇到了莫名其妙的编译错误,原因是我用QVariant设置一个自定义指针类型的Data,这时就需要Q_DECLARE_METATYPE(Type*)了,如果设置了Q_DECLARE_METATYPE(Type),Qt只能识别Type类型,而未能识别其指针类型!!!,如下实例 必须为定义得数据类型 而不能是指向数据类型得指针。

QVariant::fromValue(实例)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哦里 哦里哦里给

你的鼓支持是我分享的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值