事件处理流程:事件派发、事件过滤、事件分发、事件处理
事件派发:QApplication::exec();启动之后会在后台维护一个事件循环,当事件产生后Qt会调用notify(函数有两个参数:事件接收者,事件对象)函数将事件派发给指定窗口。
事件过滤:在事件派发过程中可以对事件进行过滤,默认不产生任何过滤行为。需要给指定类安装事件过滤器:QObject::eventFilter(需要过滤事件的对象,需要过滤的事件);
事件分发:当事件发送到指定的窗口后,窗口的事件分发器会对收到的事件进行分类。窗口事件分发器原型:bool QWidget::event(事件对象)。
事件处理:事件分发后调用指定的处理函数处理。每个系统事件都有默认的事件处理函数