Qt学习笔记(六) 事件处理
来源:互联网 发布:资产负债表数据来源 编辑:程序博客网 时间:2024/05/16 11:16
事件是由系统产生的用于响应所发生的各类事情。
首先需要分清楚“信号”和“事件”这两个概念。一般情况下,在使用窗口部件的时候,需要关注“信号”,而自己实现窗口部件时,则需要关注“事件”。
在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()
- Qt学习笔记(六) 事件处理
- Qt学习笔记(三)事件处理
- Cocos2d-x学习笔记(六)—— 事件处理
- nginx学习笔记六(Nginx事件框架处理流程)
- Qt学习笔记——事件处理
- .NET学习笔记(六) ------事件
- Qt学习笔记-----事件
- JQuery学习笔记(六)——css操作、事件处理和动画
- QT学习笔记(六):Embedded Linux QT Display Management
- Qt Quick学习笔记(六)
- C++学习笔记(六)文件处理
- QT学习笔记(6)事件
- 数字图像处理学习笔记六
- qt事件相关学习笔记
- Qt学习笔记:事件系统
- qt学习笔记(六)之简析对象树
- Qt学习笔记(六)项视图类
- Qt学习笔记外观篇(六):QLabel
- 企业架构与SOA
- 额,博客又搬回CSDN了,很郁闷
- lodsb 和 stosb 指令
- SRM 497(DIVII) 500 PermutationSignature
- 飞鸽传书2007[www.freeeim.com]
- Qt学习笔记(六) 事件处理
- bean标签详解
- 【学习笔记】thinkPHP的RBAC的基本用方法
- 转:简单的 XML 读取
- FACEBOOK 技术驱动文化【代码发布管理】
- linux 虚拟机 xen安装
- 论坛灌水机器——用CSocket提交数据网页数据表单
- windows 7系统进程详解
- zoj 2724 Windows Message Queue