Qt中的事件处理

来源:互联网 发布:音乐合成软件 编辑:程序博客网 时间:2024/06/05 17:43

Qt提供了5个级别的事件处理和事件过滤的方法

1,重新实现特殊的时间处理器
重载例如 mousePressEvent(), keyPressEvent(), paintEvent()这样的时间处理器

2,重新实现QBject::event()
通过event()函数的重新实现,可以在这些事件到达特定的实践处理器之前处理他们。这种方式常用于覆盖tab键的默认意义,这种方式也可以用于处理没有特定事件处理器的不常见类型的事件中(例如,QEvent::However)。当重新实现event()时,必须对那些没有明确处理的情况调用其基类的event()函数。

3,在QObject中安装事件过滤器
对象一旦使用installEventfilter()注册过,用于目标对象的所有事件都会首先发送给这个监视对象的eventFilter()函数。如果在同一个对象安装了多个事件处理器,那么就会按照安装顺序逆序,从最近安装的到最先安装的,依次激活这些事件处理器。

4,在QApplication对象中安装事件过滤器
一旦在qApp(唯一的QApplication对象)注册了事件过滤器,那么应用程序中每个对象的每个事件都会在发送到其他事件过滤器前,先发送给这个eventFilter()函数。

5,子类化QApplication并且重新实现notify()

原创粉丝点击