Qt信号机制

本文探讨了Qt信号槽机制的使用,澄清了信号与槽的一对一对应关系误解,介绍了自定义信号的条件及步骤,包括多继承解决非QObject派生类问题。详细解释了如何声明和触发信号,并通过实例进行说明。
摘要由CSDN通过智能技术生成

如果你觉得这个文章对你有帮助,留下个脚印吧。

Qt信号槽机制很复杂,但是使用起来却很简单。以下内容是个人遇到的一些情况后总结的一些经验,不保证原理绝对正确,但这么使用没错。


问:信号和槽只能一对一对应么?

答:不是的,

可以多个信号对应一个槽,可以是connect  multi-signals to one-slot .

可以一个信号对应多个槽,可以是connect one-signal to multi-slots

还可以一个信号对应一个信号,就是connect one-signal to one-signal.


问:什么条件下才能自定义信号?

答:一个条件。你继承的基类中必须是从QObject中继承过来的。如果原来继承的是一个不是由QObject派生的类,那就没办法自定义信号了。

不清楚的可以下一个Qt类图看,一目了然


问:如果我继承了一个非派生自QObject的类,但是又需要使用信号机制怎么办?

答:使用多继承就可以解决了


问:如何定义一个自己的信号?

答:分以下几步

(1)查看自己继承的类是不是派生自QObject,查看类图或者帮助手册都可以

(2)查看在类头部加入Q_OBJECT定义没有,如果没有就不能编译通过

(3)使用signals声明后面的内容是信号声明</

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值