Qt MouseMoveEvent仅在按下鼠标按钮时触发

Qt MouseMoveEvent only triggers with a mouse button press

本文关键字:按钮 鼠标 MouseMoveEvent Qt      更新时间:2023-10-16

我这里有一个奇怪的问题。

我正在开发一个应用程序,在我的一个类中,我正在监视我的鼠标事件。

奇怪的是,我的鼠标移动事件只会在任何鼠标按钮被按下时被调用。

我甚至没有过滤方法中的任何按钮;方法本身甚至不会被调用,除非我点击这个对象本身(监视它的对象)。

通常是什么导致这种类型的错误发生?

我不确定它是否相关,但我有两个不同的东西监视我的鼠标输入:1)主程序监视全局鼠标坐标,2)程序中的对象监视自己的鼠标坐标。

编辑问题在于,鼠标移动事件通常在人们沿着屏幕拖动光标时使用,对吧?我不需要这样做的原因是因为我正在构建各种自定义上下文菜单,并且我需要知道项目何时悬停在上面。

事实证明,我并没有真正设置类中的所有内容来启用鼠标跟踪。我想,如果类本身被设置为启用它,我就不需要将它设置为所有的子对象,但现在我明白了,这根本没有任何意义。

所以只是澄清我的解决方案:用于跟踪光标位置的项需要包含

setMouseTracking(true);