Qt mouseMoveEvent - 跟踪鼠标位置

Qt mouseMoveEvent - tracking mouse position

我正在用 Qt 编写我的第一个 2D 游戏。

我在画游戏的地方有 QWidged(等距视图)。当鼠标进入小部件的边界时,它会移动地图视图(就像在每个策略游戏中一样......)。

我的麻烦来了...我正在使用 mouseMoveEvent 跟踪鼠标位置,但它仅在鼠标移动时触发(仅在位置更改时触发)。所以只有当我在边界移动鼠标时地图才会移动。如果鼠标静止不动,则地图不会移动(不会触发 mouseMoveEvent)。我不知道如何解决这个问题。当你尝试播放它时很烦人。

这是我第一次 post 来这里..我希望我能清楚地解释我的问题:)

编辑(更清楚一点):
想象一下:你想移动地图。所以你将鼠标移动到屏幕边缘(QWidget)但是当你停止鼠标时,地图也停止移动。但鼠标仍在屏幕边缘。我想做的是鼠标停在边缘后地图仍然会移动。

您可以为坐标创建 QPropertyAnimation,并在鼠标移动 to/from 小部件的边框时 start/stop 它。 或者您可以记住当前状态 ("changing x by -1 every 100ms, changing y by 0") 并调用一些使用 QTimer 进行真正移动的插槽。