一、概述
信号与槽是QT框架给我们提供的一种事件处理机制,QT框架是基于窗口的这样一个应用程序框架,基于窗口的应用程序都是基于事件的,也就意味着咱们这个信号其实对应的就是事件,槽就是对应事件的处理动作,信号与槽就类似于设计模式里的观察者模式
二、机制和核心
机制和核心思想就是回调,信号与槽也用到了回调,但是这个qt框架针对这个回调做了一个更深层次的封装,我们作为使用者无需去关心内部实现,只需要把对应的槽函数实现出来就行了。也就意味着我们只需要把处理动作写出来就行,至于说这个事件是怎么产生以及产生之后如何让用户知道都是有QT框架来实现的。
三、信号
1、信号的·本质是事件,比如说我们对窗口进行了一系列操作,信号是由于用户对窗口或控件进行了某些操作,导致窗口或控件产生了某个特定事件,这时候Qt对应的窗口类会发出某个信号,以此对用户的操作做出反应。比如
鼠标单击、双击
窗口刷新
鼠标按下、鼠标移动、鼠标释放
2、那么在Qt中信号是通过什么形式呈现给读者呢?
我们对哪个窗口进行了操作,哪个窗口就可以捕捉到这些被触发的事件
对于使用者来说,触发一个事件我们就可以得到QT框架给我们发出的某个特定的信号
信号的呈现形式就是函数,也就是说某个事件产生了,Qt框架就会调用某个对应的信号函数,通知使用者
四、槽
1、槽的本质就是一个函数,信号是由窗口发出的,也就意味者窗口是一个被实例化的对象,所有说信号是由一个被实例化的对象发出地·。QT中槽函数地所有者也是某个类地实例对象。