当鼠标在应用程序窗口外时使用grabMouse()后QQuickItem未接收到鼠标事件

Posted

技术标签:

【中文标题】当鼠标在应用程序窗口外时使用grabMouse()后QQuickItem未接收到鼠标事件【英文标题】:QQuickItem not receiving mouse events after using grabMouse() when mouse is outside app window 【发布时间】:2016-07-02 17:29:41 【问题描述】:

我有一个带有单个 QQuickItem 的 QtGuiApplication。我想要quickitem 当鼠标指针位于主窗口之外时接收鼠标事件。鼠标指针可以在屏幕的任何位置。 所以最后 QQuickItem 应该在鼠标指针位于应用程序窗口之外时接收鼠标事件(例如鼠标移动)。

我使用grabMouse [void QQuickItem::grabMouse()] 来做到这一点。但我认为没有效果。只有当鼠标指针在 App 窗口内时,QuickItem 才会接收事件。一旦鼠标指针离开 QGuiApplication 边界,它就会停止获取任何鼠标事件。

当我读到grabMouse 应该可以解决我的问题,但不知何故它没有。 任何人都可以指出我需要做任何额外的事情或这里有什么问题。

注意:使用grabmouse Quickitem 后开始获取mousemove 事件时 鼠标经过应用程序

【问题讨论】:

【参考方案1】:

我相信当您将鼠标移到应用程序窗口外时,您将无法接收鼠标事件。这就是操作系统通常的工作方式。

【讨论】:

我想我可以,例如在窗口上按下鼠标左键并将其拖动到窗口边界之外然后单击右键,应用程序将接收事件,只需确保拖动鼠标左键时仍然存在按下。 @SanTosh,这是您操作系统的一些怪癖。这不是一种常见的行为。

以上是关于当鼠标在应用程序窗口外时使用grabMouse()后QQuickItem未接收到鼠标事件的主要内容,如果未能解决你的问题,请参考以下文章

判断鼠标点击在div外时,更改背景图片

当表单滚动到屏幕外时,每个表单字段的状态会丢失吗?

表视图单元格仅在屏幕外时自动布局

检查鼠标是不是在div内

我想让鼠标悬浮在某个窗口的时候就选中这个窗口,不用单击左键,我的是w7旗舰,怎么设置?

当鼠标悬停在边框上时,如何完全禁用调整窗口大小,包括调整大小图标?