关于QMl 多个MouseArea重叠 事件响应问题

myseemydog 2012-06-01 09:29:11
两个 MouseArea。一个在上面。一个在下面。区域重叠。当点击鼠标时。下面的mouseArea永远得不到onPressed(MouseEvent)的机会。所有的响应都被top的MouseArea截获。
有老外给了个方法就是想让below的mouseArea响应时,先将top的visible设置成false。点击完在设置成true。。。这个方法很别扭、
难道不能像以前有事件的传递过程么?

对于一个MouseArea。。如果在onPressed()中设置mouse。accepted = false会忽略此事件的处理直接跳到onCancled()里面、
不知道有木有什么解决方法?
...全文
751 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lidanjun521 2012-08-16
  • 打赏
  • 举报
回复
可以消息转发。。。。
myseemydog 2012-06-01
  • 打赏
  • 举报
回复
亲们、、给点力哈·~~有人回答下么
myseemydog 2012-06-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
你为啥要两个mousearea重叠呢?
只有上面一个能够捕获到鼠标点击的事件难道不是非常符合逻辑么?

如果一定要这么做,那就把下层鼠标点击后的处理抽象到一个函数里面,然后上层鼠标点击后也调用这个函数就好了
[/Quote]


比如 有一个右键返回上一菜单的需求。

一个复杂的菜单界面。。里面有不止一层的控件(Element)。用户需要的是只要点击右键就会返回。但是现在,只要一有鼠标事件,就会被某个的MouseArea截获(某个控件的mouseArea)。。。然后。这个事件就over掉了。如果这个mousearea不处理,也传递不到他below的mouseArea

zhu_xz 2012-06-01
  • 打赏
  • 举报
回复
你为啥要两个mousearea重叠呢?
只有上面一个能够捕获到鼠标点击的事件难道不是非常符合逻辑么?

如果一定要这么做,那就把下层鼠标点击后的处理抽象到一个函数里面,然后上层鼠标点击后也调用这个函数就好了

16,235

社区成员

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

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