Qt自定义数据类型注册meta-object system

      在Qt项目开发过程中,有时候会碰到需要使用自定义数据类型作为信号或者槽的参数进行数据传输,由于信号或者槽中的参数必须为Qt meta-object 系统中能够识别的参数,但是自定义数据类型仅仅只是程序代码编写者自己知道,编译器在编译的过程中并不知道这种参数类型,但是Qt中提供了Q_DECLARE_METATYPE和qRegisterMetaType来实现具体的功能,具体实现如下:

//自定义数据类型
struct human {
    int age;
    QString name;
    QString sex;
};
Q_DECLARE_METATYPE(human);

     然后在需要使用这个自定义数据类型作为参数传递时,将自定义的参数头文件包含起来,然后在使用之前将自定义数据类型注册到元数据类型系统中,具体代码如下:

qRegisterMetaType<human>("human");
connect( ***,  ***(human), ***, ***(human));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值