Qt的5个级别事件处理和事件过滤方法
Posted 道亦无名
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt的5个级别事件处理和事件过滤方法相关的知识,希望对你有一定的参考价值。
QT 提供了5个级别的事件处理和事件过滤的方法,如下:
-
重新实现特殊事件处理器
比如: mousePressEvent(), keyPressEvent(), paintEvent() 。 这是最常规的事件处理方法。 -
重新实现QObject::event()
这一般用在Qt没有提供该事件的处理函数时。也就是,我们增加新的事件时。 这一般用在Qt没有提供该事件的处理函数时。也就是,我们增加新的事件时。 -
在QObject中安装事件过滤器
-
在QApplication对象中安装事件过滤器
QApplication 上的事件过滤器将捕获应用程序的所有事件,而且第一个获得该事件。也就是说事件在发送给其它任何一个event filter之前发送给QApplication的event filter。 -
子类化QApplication并且重新实现notify()
Qt使用 notify()来分发事件。要想在任何事件处理器捕获事件之前捕获事件,唯一的方法就是重新实现QApplication 的 notify()方法。
以上是关于Qt的5个级别事件处理和事件过滤方法的主要内容,如果未能解决你的问题,请参考以下文章
Python Qt GUI设计:5种事件处理机制(提升篇—3)
Python Qt GUI设计:5种事件处理机制(提升篇—3)