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));
发布了83 篇原创文章 · 获赞 34 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/xx18030637774/article/details/105016817
今日推荐