我如何接收或能够在我的小部件窗口外处理 mouseMoveEvent(s)?

Sub*_*iro 1 c++ mouse events qt

我正在编写 Qt 应用程序,它在鼠标移动到屏幕上的某个区域时播放淡入动画,每当鼠标移出同一区域时播放淡出动画。

我已经在堆栈溢出中找到了一个类似的问题,但是,它并不能完全回答我的问题。(类似的问题在这里

如果我为应用程序安装了事件过滤器,我是否能够看到应用程序中的所有事件,即使它在我的小部件窗口之外?

如果没有,我知道在 leaveEvent() 的重新实现中涉及 QWidget::grabMouse() 的替代方法。但是,如果我这样做,我是否能够与应用程序之外的任何内容进行交互?

编辑:虽然我使用的是 Qt 库,但我的应用程序仅用于部署到 Windows。

cma*_*t85 5

我相当肯定答案是否定的,因为小部件之外的事件由操作系统窗口管理器处理(并传播到该空间中的任何应用程序)。

但是,您可以通过调用在屏幕上的任何位置获取鼠标位置QCursor::pos(),您可以定期轮询以找出鼠标所在的位置。