【QT4】请教:eventfilter中的return true/false的意义?

Areos_cc 2010-11-05 03:38:54
为什么return false代表继续往下一个控件传递事件,而return true则是当前控件已经完成事件,事件不再下传?

小生愚钝,不是很明白eventfilter的工作机制,哪位高手可以详细的解答一下?
...全文
645 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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

16,817

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧