美文网首页
QT 信号和槽中使用自定义的类型作为参数时

QT 信号和槽中使用自定义的类型作为参数时

作者: 可不期诺Cappuccino | 来源:发表于2019-04-11 18:32 被阅读0次

    如果要在Qt信号槽中使用自定义类型,需要注意使用qRegisterMetaType对自定义类型进行注册,当然在不跨线程时使用自定义类型signal/slot来传递,可能不会出现什么问题;一旦涉及跨线程就很容易出错,回想下信号槽的作用就是用来对象与对象之间通信的,难免会跨线程,建议在使用自定义类型利用信号槽通信时,最好先通过qRegisterMetaType()将自定义类型进行注册,以免出错。

    总结qRegisterMetaType使用方法如下:
    1、注册位置:在第一次使用此类链接跨线程的signal/slot之前,一般在当前类的构造函数中进行注册;
    2、注册方法:在当前类的顶部包含:#include <QMetaType>,构造函数中加入代码:qRegisterMetaType<MyClass>("Myclass");
    3、Myclass的引用类型需单独注册:qRegisterMetaType<MyClass>("Myclass&");

    相关文章

      网友评论

          本文标题:QT 信号和槽中使用自定义的类型作为参数时

          本文链接:https://www.haomeiwen.com/subject/fauxwqtx.html