Qt鼠标离开事件,而按下按钮
Qt mouse leave event while button is pressed
我需要检测鼠标指针是否离开了我的自定义小部件,即使按下了鼠标按钮。
根据这篇文章,Qt在按下按钮时不会导致leaveEvent
,至少在4.4版本中不会。我正在使用4.7.3,但在所描述的情况下仍然没有得到leaveEvent
。我还尝试了各种与拖拽相关的项目,但运气不好。有人知道怎么处理这个吗?
实际上有一个比使用父小部件的鼠标事件更好的选择:您可以实现子小部件的mouseMoveEvent
函数并获得相对于小部件左上角的QMouseEvent::pos()
位置。这意味着,如果您知道小部件的大小(例如使用QWidget::rect()
),您可以在小部件内计算鼠标指针是否仍在小部件上,而无需更改父小部件。
我对@gregseth做了类似的事情。
编写自己的MouseLeaveEvent,从MouseMoveEvent中调用当鼠标的位置在小部件的边界之外时。
正如Qt的文档所说"鼠标移动事件只会在按下鼠标按钮时发生"
我遇到了同样的问题。我发现的唯一解决方法是管理父小部件的mouseMove
事件,并检查光标的位置是在您希望发生事件的小部件的边界内还是外。
相关文章:
- 如何通过拖动鼠标QT检查按钮?鼠标移动事件
- 以编程方式在任何按钮上突出显示 Qt 鼠标悬停按钮
- 单击wx切换按钮时不捕获鼠标
- 当鼠标越过按钮时,我可以更改按钮背景颜色吗?
- C Win32 API在按钮区域内通知鼠标
- 如何实现一致的方法来检测鼠标按钮被按住
- Qt按住鼠标按钮和计时器CPP
- SDL_MOUSEBUTTONUP甚至在释放鼠标按钮之前发生
- QT-随着鼠标悬停按钮的信息
- 将左鼠标按钮向上发送后,检测左键按钮
- 什么可能导致低级鼠标挂钩错过按钮启动事件?
- 当我将鼠标悬停在qt中的不同按钮上时,如何更改标签文本
- 当鼠标按钮按下时,WM_LBUTTONDOWN不会立即发送
- 如何从第三方程序中通过鼠标悬停获取按钮文本
- QCHARTVIEW,橡皮筋和右鼠标按钮行为
- 双击(触摸)按屏幕按钮的原因可能是什么,该按钮通过单击鼠标按下
- 模拟鼠标按钮按QT 5.3仅第一次工作
- 如何检测鼠标右键点击按钮
- 当我在C++/SFML中按下鼠标按钮时,如何画一个球
- SDL UI 菜单按钮 - 鼠标悬停