QT5:事件层次.
2016-04-04 00:00
253 查看
重写
重写
在特定对象上面安装事件过滤器。该过滤器仅过滤该对象接收到的事件。
在
重写
该函数会将
paintEvent()、
mousePressEvent()等事件处理函数。这是最普通、最简单的形式,同时功能也最简单。
重写
event()函数。
event()函数是所有对象的事件入口,
QObject和
QWidget中的实现,默认是把事件传递给特定的事件处理函数。
在特定对象上面安装事件过滤器。该过滤器仅过滤该对象接收到的事件。
在
QCoreApplication::instance()上面安装事件过滤器。该过滤器将过滤所有对象的所有事件,因此和
notify()函数一样强大,但是它更灵活,因为可以安装多个过滤器。全局的事件过滤器可以看到 disabled 组件上面发出的鼠标事件。全局过滤器有一个问题:只能用在主线程。
重写
QCoreApplication::notify()函数。这是最强大的,和全局事件过滤器一样提供完全控制,并且不受线程的限制。但是全局范围内只能有一个被使用(因为
QCoreApplication是单例的)。
(virtual) bool QCoreApplication::notify(QObject* receiver, QEvent* event);
该函数会将
event发送给
receiver,也就是调用
receiver->event(event),其返回值就是来自
receiver的事件处理器。注意,这个函数为任意线程的任意对象的任意事件调用,因此,它不存在事件过滤器的线程的问题。不过我们并不推荐这么做,因为
notify()函数只有一个,而事件过滤器要灵活得多。
相关文章推荐
- Qt 制作透明背景图片与裁剪图片
- Qt 应用程序图标设置
- Qt学习 -- Qt采用设计器Qt Designer与 代码实现的区别
- Qt OpenGL:学习现代3D图形编程之四,透视投影
- QTableWidget控件使用总结
- Qt 的udpSocket通信及相关
- PyQt4颜色对话框QColorDialog
- Qt for iOS,Qt 与Objective C混合编程
- 电网QT项目|QT的QTextEdit
- Qt应用的单实例运行
- 【Qt】Qt Creator快捷键
- 【Qt】Pixmap
- Qt标签编辑框等重叠问题
- 【Qt】Qstring
- Qt OpenGL:学习现代3D图形编程之三,移动三角形
- Qt中读写xml文件
- PyQt4预定义对话框
- PyQt4发射信号
- PyQt4重写事件处理方法
- QT5:事件接受与忽略.