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

标签 c++ qt events mouse

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

我已经在 stack overflow 中找到了类似的问题,但是,它并没有完全回答我的问题。 ( similar question here )

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

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

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

最佳答案

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

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

关于c++ - 我如何在我的窗口小部件窗口外接收或处理 mouseMoveEvent(s)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8520183/

相关文章:

javascript - addEventListener 不会在按键时触发

c++ - 为什么STL的排序功能不起作用?

c++ - 不同情况下如何处理多条法线的顶点?

qt - 在 Qt 中将原始 OpenGL 渲染为 QML UI 的两种方法的比较

c++ - 使用 Qt 4 在 C++ 中设计模式

javascript - 从链接中获取字段值

c++ - Z3,C++ : pointer being freed was not allocated

c++ - 修复NamespaceComment 在 .clang-format 中无法按预期工作

qt - 将 QTQuick 与 haskell 一起使用

python - 线程与事件循环——网络编程(语言无关)