在Qt中有一种特殊的机制——信号槽,用户进行的各种操作,就可能会产生出信号,可以给某个信号指定槽函数,当信号触发时,就能够自动的执行到对应的槽函数。
事件与信号槽非常类似,用户进行的各种操作也就产生事件,程序员同样可以给事件关联上处理函数(处理的逻辑),当事件触发的时候,就能执行到对应的代码。
事件本身是操作系统提供的机制。Qt也同样把操作系统事件机制进行了封装,拿到了Qt里面,但是由于事件对应的代码编写起来不是很方便,所以Qt对于事件这样的机制又进一步的封装,就得到了信号槽。
也就是说,信号槽就是对于事件的进一步封装,事件是信号槽的底层机制。
实际Qt开发程序过程中,绝大部分和用户之间进行的交互都是通过“信号槽”来完成的。但是有些特殊情况下,信号槽不一定能搞定(某个用户的动作行为,Qt没有提供对应的信号),此时就需要通过重写事件处理函数的形式,来手动处理事件的响应逻辑。
开放事件机制可以根据实际的需要进行更深度的定制化 diy 操作了。
用户进行很多操作,就会产生很多事件,当然也会产生很多信号。
事件是应用程序内部或者外部产生的事情或者动作的通常。在 Qt 中使⽤⼀个对象来表⽰⼀个事件。所有的 Qt 事件均继承于抽象类 QEvent。事件是由系统