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

事件是应用程序内部或者外部产生的事情或者动作的通常。在 Qt 中使⽤⼀个对象来表⽰⼀个事件。所有的 Qt 事件均继承于抽象类 QEvent。事件是由系统或者 Qt 平台本⾝在不同的时刻发出的。当⽤⼾按下⿏标、敲下键盘,或者是窗⼝需要重新绘制的时候,都会发出⼀个相应的事件。⼀些事件是在⽤⼾操作时发出,如键盘事件、⿏标事件等,另⼀些事件则是由系统本⾝⾃动发出,如定时器事件。

最低0.47元/天 解锁文章
2204

被折叠的 条评论
为什么被折叠?



