社区
Qt
帖子详情
【QT4】请教:eventfilter中的return true/false的意义?
Areos_cc
2010-11-05 03:38:54
为什么return false代表继续往下一个控件传递事件,而return true则是当前控件已经完成事件,事件不再下传?
小生愚钝,不是很明白eventfilter的工作机制,哪位高手可以详细的解答一下?
...全文
724
6
打赏
收藏
【QT4】请教:eventfilter中的return true/false的意义?
为什么return false代表继续往下一个控件传递事件,而return true则是当前控件已经完成事件,事件不再下传? 小生愚钝,不是很明白eventfilter的工作机制,哪位高手可以详细的解答一下?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Easlee
2011-02-12
打赏
举报
回复
为什么我return true后 也会继续执行父类的事件呢?
Areos_cc
2010-11-05
打赏
举报
回复
[Quote=引用 4 楼 worstboyzym 的回复:]
就我所知是这样的
但是这更多的是我自己的使用体验,没有深入研究过
你自己可以多尝试,毕竟别人说的也不一定都是对的
[/Quote]
十分感谢
WORSTBOYZYM
2010-11-05
打赏
举报
回复
就我所知是这样的
但是这更多的是我自己的使用体验,没有深入研究过
你自己可以多尝试,毕竟别人说的也不一定都是对的
Areos_cc
2010-11-05
打赏
举报
回复
[Quote=引用 2 楼 worstboyzym 的回复:]
为什么return false代表继续往下一个控件传递事件,而return true则是当前控件已经完成事件,事件不再下传?
一般处理来看基本就是这样,eventfilter有点像栈,后进先出,最后一个qApp->installEventFilter()的控件优先取得事件消息,方便我们对一些QT事件进行优先处理或者屏蔽
[/Quote]
是不是就是说,例如:up键在我的程序里对应了3个功能a/b/c,其中c是我自己写的,在执行过程中,三个功能的进入内存的顺序是a->b->c,而执行顺序是c->b->a->,如果我使用return false的话,在程序执行过程中,我按下up键,内部在执行完c以后,会继续走到b->a,如果我使用return true的话,则会在第一次执行结束以后(c结束后),就立刻结束了?
我这样理解对么?
WORSTBOYZYM
2010-11-05
打赏
举报
回复
为什么return false代表继续往下一个控件传递事件,而return true则是当前控件已经完成事件,事件不再下传?
一般处理来看基本就是这样,eventfilter有点像栈,后进先出,最后一个qApp->installEventFilter()的控件优先取得事件消息,方便我们对一些QT事件进行优先处理或者屏蔽
dbzhang800
2010-11-05
打赏
举报
回复
你不能孤立地看它,要理解它必须先了解Qt的事件系统。
Manual中有详细介绍,也可参考 http://hi.baidu.com/cyclone/blog/item/fe6ab3de0e9f2155ccbf1aea.html
Qt 事件过滤器
event
Filter
(QObject* obj, Q
Event
* e) (**笔记**)
Qt的事件过滤器允许拦截对象的事件,通过install
Event
Filter
注册过滤器对象,
event
Filter
函数处理拦截的事件。返回
true
表示事件被处理,不再传递;
false
则事件继续传递给目标对象。多过滤器时,最后安装的先激活。常用于监听和定制控件行为,如按键事件处理。
Qt事件系统
本文深入解析Qt事件系统的核心机制,涵盖事件驱动架构、事件与信号的区别、事件传递流程、事件过滤器的工作原理与实现步骤,以及
event
()函数和各类事件处理函数(如paint
Event
、mousePress
Event
)的重写规范与调用时机。重点说明事件拦截、分发控制、预处理及基类调用策略,适用于Qt桌面应用开发
中
的事件定制需求。
别再只用setEnabled了!Qt ComboBox禁用选项的3种进阶玩法与避坑指南
本文深入探讨Qt
中
ComboBox控件的三种禁用选项方案:基础setEnabled全局禁用、setItemData实现选项级禁用、QStandardItemModel结合自定义delegate的动态模型控制。重点分析各方案的适用场景、技术原理、跨平台样式一致性、信号拦截与性能优化策略,涵盖Qt::ItemIsEnabled角色使用、模型重置状态维护、代理模型过滤等关键技术点。
qt响应linux的input事件,在Qt
中
处理平台相关的底层事件
本文详细介绍了如何在Qt
中
处理Linux XWindow平台的底层事件,包括Qt的事件机制、平台相关的宏定义,以及如何通过重载`QApplication::x11
Event
Filter
()`和`QWidget::x11
Event
()`来捕获和处理X
Event
。通过示例展示了如何使用Xlib发送和接收XClientMessage
Event
,以及Qt
中
与平台相关的API用法。
扒光Qt的事件机制干了啥,怎么用
本文系统详解Qt事件机制,涵盖事件循环、事件分发链路、常见事件类型(鼠标/键盘/触屏)、
event
()总入口、事件重写与父类调用、accept()/ignore()语义、动态事件开关、事件过滤器、send
Event
/post
Event
区别、自定义事件、跨平台事件抽象及与信号槽的本质差异,并强调事件循环对界面响应性的影响。
Qt
21,503
社区成员
26,693
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章