Qt学习笔记(六) 事件处理

事件是由系统产生的用于响应所发生的各类事情。

首先需要分清楚“信号”和“事件”这两个概念。一般情况下,在使用窗口部件的时候,需要关注“信号”,而自己实现窗口部件时,则需要关注“事件”。

 

Qt中,事件的基类是 QEvent ,可以通过 QEvent ::type()获取事件的类型。事件是通过 QObject event()函数来通知的。在 Widget中的 event()已经实现了把绝大多数的常用事件传递给了特定的事件处理器,例如 paintEvent() keyPressEvent() mousePressEvent()等。我们只需要实现相应的事件处理器即可。

 

Qt中,通过安装事件过滤器,一个对象便可以监听另一个对象的 event()所接收到的事件。

首先要对目标对象调用 installEventFilter()来注册监视对象,然后在监听者的 eventFilter()便可截取发向被监听者 的事件了。在事件过滤器注册之后,发送给被监听者的事件会先发送给监听者,由监听者决定是否继续发送给被监听者。

 

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

1.       重新实现最常用的事件处理器,例如 paintEvent() keyPressEvent() mousePressEvent()

2.       重新实现 QObject::event()

3.       QObject中安装事件过滤器

4.       QApplication中安装事件过滤器

5.       重新实现 QApplication::notify()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值