如果你觉得这个文章对你有帮助,留下个脚印吧。
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声明后面的内容是信号声明</