qt变乱过滤器

[复制链接]
发表于 2026-1-26 10:15:18 | 显示全部楼层 |阅读模式
1.变乱和信号槽固然功能相似但是不是一个东西,变乱是QObject的罗列,更倾向于组件通用,信号槽则更有针对性,每个组件有差别的信号
2.变乱过滤器是在变乱相应前面加了一道过滤网,可以在这道过滤网中预处理惩罚,处理惩罚完后可以继续放已往继续处理惩罚,也可以不再处理惩罚,与返回值相干
3.变乱过滤器只须要继续QObject类,只须要重写bool eventFilter(QObject *watched, QEvent *event)即可成为一个变乱过滤器
4.变乱过滤器的QEvent *event是输入的变乱的基类,可以通过dynamic_cast转换以得到更多可实行方法
5.须要举行过滤的对象须要调用
  1. void installEventFilter(QObject *filterObj);
复制代码
方法就能绑定到变乱过滤器,变乱发生时先辈入过滤器使用
接下来展示变乱过滤器的使用方法,写一个拦截键盘输入的步调


1.新建继续QObject类filter,重写变乱过滤器函数
  1. bool eventFilter(QObject *watched, QEvent *event) override;
  2. //参数为发生事件的对象类型和发生的事件
复制代码

辨认变乱发生是否是输入栏,是否是按键按下,假如是按键按下则打印到调试框


widget中添加一个输入栏,创建过滤器对象调用其方法installEventFilter将对象添加到变乱过滤器



实行,在输入框输入数据

可以看到输入框并没有数据,由于我们打印按键后返回的是true,代表变乱已处理惩罚完成,不须要调用组件默认的变乱处理惩罚。假如改为返回false
由于返回了false,体系判断未处理惩罚,以是输入栏实行了输入栏默认的变乱处理惩罚函数

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表