C++ Qt MouseMoveEvent仅通过按下鼠标按钮触发

C++ Qt MouseMoveEvent仅通过按下鼠标按钮触发,c++,qt,mouseevent,mouse,mousemove,C++,Qt,Mouseevent,Mouse,Mousemove,我这里有个奇怪的问题 我正在开发一个应用程序,在我的一个类中,我正在监视我的鼠标事件 奇怪的是,我的鼠标移动事件只有在按下任何鼠标按钮时才会被调用 我甚至不过滤方法中的任何按钮按下;方法本身甚至不会被调用,除非我点击这个对象本身(监视它的对象) 通常是什么导致这种错误发生的 我不确定它是否相关,但我有两个不同的东西监视我的鼠标输入:1)主程序监视全局鼠标坐标,2)程序中的一个对象监视自身的鼠标坐标 编辑 所以问题是,当人们沿着屏幕向右拖动光标时,通常会使用鼠标移动事件? 我之所以不需要它,是因为

我这里有个奇怪的问题

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

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

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

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

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

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

事实证明,我并没有真正设置类中的所有内容以启用鼠标跟踪。 我不知怎的认为,如果类本身被设置为启用它,我就不需要将它设置为所有子对象,但现在我明白了这是多么的毫无意义

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

setMouseTracking(true);

你应该发布并接受自己的答案,而不是将答案添加到问题的文本中。我还需要1次重复才能发布答案,或者等待8小时。我甚至在帖子中提到,如果您正在调用
setViewport()
,则必须在调用
setMouseTracking()
之前执行此操作,否则跟踪将无法工作。