首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关闭QMenu时在Mac和Linux上发出的QEvent类型的差异

关闭QMenu时在Mac和Linux上发出的QEvent类型的差异
EN

Stack Overflow用户
提问于 2019-07-09 02:49:27
回答 1查看 52关注 0票数 0

我在应用程序中使用QMenu,当我在QMenu外部单击以关闭它时,Qt会发出几个事件。我发现在Linux上,它会发出以下事件:

代码语言:javascript
复制
QEvent::MouseButtonPress
QEvent::Close
QEvent::Hide
QEvent::HideToParent
QEvent::UpdateRequest
QEvent::Leave

在Mac OS上,发出的事件如下所示:

代码语言:javascript
复制
QEvent::Close
QEvent::Hide
QEvent::HideToParent
QEvent::UpdateRequest
QEvent::Leave

可见,当QMenu关闭时,在Mac环境下不会发出QEvent::MouseButtonPress。我想知道这是Qt中的错误还是故意的行为。

在我的代码中,我在mousePressEvent()方法中计算QMenu关闭时鼠标单击的坐标,我在继承QMenu的自定义菜单类中重写了这个方法。但由于上面强调的原因,它破坏了Mac OS上的整个应用程序。

我使用的是Qt版本5.12.3

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

https://stackoverflow.com/questions/56940933

复制
相关文章

相似问题

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