信号和槽时qt框架中事件处理的一种机制,qt是基于窗口框架的程序,基于窗口框架额程序都是基于事件的,本质信号对应的就是一个事件,槽对应事件处理的动作。信号槽机制类似于设计模式力的观察者模式。观察者模式就是我一直观察是否有事件的产生,如果有事件产生我就对它进行处理。核心思想就是回调。信号槽也使用了回调,只不过被qt框架封装起来。
常见的事件:鼠标单双击打,键盘输入,窗口刷新等。事件 被qt框架捕捉到,也就是发出一个信号,然后对这个事件做后续处理,调用槽函数。信号是被一个实例化的对象检测到的,然后发出这个信号(调用函数)。槽函数也也应属于某个对象。通过connect函数建立关系。
connect函数相当于做了信号处理动作的注册
标准信号槽,在qt提供的一些标准类中。
自定义信号
自定义信号要求:信号是类的成员函数,返回值void类型,使用signals关键字进行声明,只需声明不需要定义 。可以被重载。
自定义槽函数,要求:返回值必须是void类型,支持重载,参数个数和信号函数参数个数和类型相同或者少于信号参数个数。
Qt中槽函数类型:类的成员函数,全局函数,静态函数,lambda表达式。