1.2.1 Qt中事件是如何进行传递
1.2.2 Qt中的事件过滤器(eventFilter)
1.2.3 如何自己模拟发送事件消息
一、Qt中事件是如何进行传递
1、事件简介
事件是由应用程序内部或者外部产生的事情或者动作的总称。任何继承QObject的类都可以接收和处理事件。
外部的事件
由系统产生的,通常由底层窗口系统发来的事件,比如鼠标、键盘等事件,Qt接收到之后放入到系统的消息队列中,等待主程序的事件循环从队列中读取这些事件消息,然后转换为对应类型的QEvent对象,再依次下发下去(具体如何下发,见下文)。
内部的事件
是由Qt应用程序程序自发产生的,有两种方式。
第一种是调用QApplication::postEvent()函数,如QWidget的update()函数,如果需要重新绘制屏幕时,我们可以调用update()函数,这个时候程序内部会产生一个paintEvent事件就是通过postEvent这种方式,所以这个事件是在消息队列中