Qt mouseMoveEvent - 跟踪鼠标位置

时间:2015-03-29 21:02:17

标签: c++ qt mouse tracking qwidget

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

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

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

这是我在这里的第一篇文章..我希望我能清楚地解释我的问题:)

编辑(稍微澄清):
想象一下:你想要移动地图。因此,您将鼠标移动到屏幕边缘(QWidget),但是当您停止鼠标时,地图也会停止移动。但鼠标仍处于屏幕边缘。我想要做的是,鼠标停在边缘后,地图仍会移动。

1 个答案:

答案 0 :(得分:0)

您可以为坐标创建QPropertyAnimation,并在鼠标移动到窗口小部件的边框时启动/停止它。 或者你可以记住当前的状态(“每100毫秒改变一次x,将y改变为0”)并调用一些使用QTimer进行实际移动的插槽。