首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt:鼠标事件处理程序可以互相阻止吗?

Qt:鼠标事件处理程序可以互相阻止吗?
EN

Stack Overflow用户
提问于 2012-04-06 02:11:24
回答 1查看 814关注 0票数 1

我有一个简单的父小部件,它重新实现了mousePressEvent/mouseReleaseEvent。父级的子小部件使用enterEvent/leaveEvent。当我将鼠标悬停在子窗口小部件上时,leaveEvent/enterEvent将执行,但当我单击并按住鼠标时,mousePressEvent将执行,但enterEvent/leaveEvent将静默(换句话说,不再单击和拖动)。你知道这是什么原因造成的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-06 04:11:53

如果您在小部件上按下并按住鼠标按钮,那么该小部件将获取鼠标事件,直到您释放该按钮。这不是Qt的一个特殊功能,你可以在我所知道的所有其他GUI API中找到类似的行为。

看看Qt文档的相关部分:

QWidget / Events

当鼠标光标位于小部件内部时,或者当小部件使用grabMouse()抓住鼠标时,将调用

mousePressEvent()。按下鼠标而不松开它实际上等同于调用grabMouse()。

void QWidget::grabMouse ()

抓取鼠标输入。此小部件接收所有鼠标事件,直到调用releaseMouse()为止;其他小部件在所有都不接收鼠标事件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10033747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档