Qt事件处理(四)——重写event()函数

本文介绍了Qt事件分发过程,强调了重写event()函数的作用,如覆盖默认行为、处理不常用事件和自定义事件。通过代码示例展示了如何在main.cpp、widget.h、widget.cpp等文件中实现,并解释了如何将自定义控件集成到Qt Designer的UI中。文章最后总结了Qt事件处理的灵活性,并鼓励进一步学习。
摘要由CSDN通过智能技术生成

目录

前言

根据视频看的事件处理,但是没有顺序,所以有点乱!不过理解起来也不麻烦!学习!分享!感谢!

Qt的事件分发过程

1
QApplication::exec()的事件循环中,会不断判断事件的产生,然后把产生的事件分派给对应的控件。比如,在QPushButton中产生了keyPressEvent()事件,这时候QApplication::exec()会把事件分派给QPushButton::event(),而如果QPushButton::event()忽略了keyPressEvent()QMainWindow::event()可以选择是否对这个事件进行处理。
所以,如果我们想自己处理事件,我们可以重写QPushButton::event()事件,也可以重写QPushButton::keyPressEvent()

2
从上图可以知道,我们的事件先会到达event()函数,在这个函数中判断发生的事件是什么,然后转到对应的事件进行处理。

重新实现event()

重新实现event()可以在事件到达特定的事件处理器之前进行处理,使用情形如下:

  • 覆盖Tab键的默认功能
    就是如果一个事件对于整个控件都有效,我们可以使用重写event()

  • 没有特定事件处理器的不常用事件
    如果一个事件,比如没有QPushButton::keyPressEvent()这样的特定事件处理器,我们可以在event()中进行处理。

  • 自定义事件
    类似同上

代码

  • main.cpp
#include "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值