目录
前言
Qt事件处理(二)——事件处理链中事件的处理过程是先判断发生事件,控件本身是否对事件进行处理,然后传递给父对象。但是事件还有另外一种处理方法,安装事件过滤器。可以认为事件产生的时候先在父控件中对事件进行处理,然后选择是否传递给子对象进行处理。
事件过滤器
事件过滤器函数
installEventFilter()
和eventFilter()
安装事件过滤器的位置
在
QObject
中安装事件过滤器
在这张图片中,MainWindow
中有些控件安装了事件过滤器,有些空间没有安装事件过滤器。对应安装了事件过滤器的,我们可以重写eventFilter()
来在MainWindow()
中处理事件。前提是我们指定控件installEventFilter()
安装在MainWindow()
中。
注意:我们可以对一个控件安装多个过滤器,以后有需求继续补充。在
QApplication
中安装事件过滤器
如果给QApplication
安装事件过滤器,相当于在所有的控件对事件进行处理之前,已经在QApplicati