Qt自定义信号

Qt自定义信号

Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法。作为一种通用的处理机制,信号与反应槽非常灵活,可以携带任意数量的参数,参数的类型也由用户自定。同时其本身也是类型安全的,任何一个从QObject或其子类继承的用户类都可以使用信号与反应槽。 Qt类中想要实现发送信号必须继承QObject类,同时类中需要添加Q_OBJECT宏:

class test: public QObject { Q_OBJECT public: test(); ~test(); }

声明信号函数,信号函数不需要实现:

class test: public QObject { Q_OBJECT public: test(); ~test(); signals: void signal(QString); }

发送信号,使用emit 发送信号:

void send() { emit signal(“send signal”); }

对于自定义类型,通过singal和slot传递时,必须使用qRegisterMetaType(“xx”)注册为元数据类型: 例:

struct struct1{ int x; double d; } qRegisterMetaType<struct1>(“struct1”);

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:Qt自定义信号 https://www.yhzz.com.cn/a/14011.html

上一篇 2023-05-12
下一篇 2023-05-12

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。