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

时间:2014-08-10 00:42:29

标签: c++ qt mouseevent mouse mousemove

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

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

奇怪的是,如果按下任何鼠标按钮,我的鼠标移动事件将被调用。

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

通常会导致此类错误发生的原因是什么?

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

修改 所以问题必须是因为当人们沿着屏幕拖动光标时,通常会使用鼠标移动事件吗? 我不需要它的原因是因为我正在构建一个自定义的上下文菜单,我需要知道一个项目何时悬停。

1 个答案:

答案 0 :(得分:14)

事实证明,我并没有真正设置我班级中的所有内容来启用鼠标跟踪。 我不知何故认为如果类本身已经设置为启用它,我就不需要将它设置为所有子对象,但现在我看到它根本不会有任何意义。

所以只是为了澄清我的解决方案: 我需要跟踪光标所需的项目

setMouseTracking(true);