0

在 Qt(C++、MinGW、Windows 7)中,QCursor::setPos(...)似乎在应用程序级别而不是在系统级别更改光标的位置。例如,如果您拦截mouseMoveEvent并取消光标的移动(setMouseTracking(false)只有在按下鼠标按钮时才进行取消),那么只要您保持按下鼠标按钮,您就不会看到光标移动。但是,当您松开按钮并稍微移动时,光标会移动到您没有阻止其移动的位置。这种行为正常吗?如何绕过它,以便在系统级别更改鼠标光标?

如果不够清楚,我可以给出代码片段。

4

1 回答 1

3

移动 QWidget 的光标始终使用小部件的坐标。对于全局鼠标定位,您应该改用桌面小部件 (QDesktopWidget)。您可以通过QApplication::desktop()静态函数获得它。例子:

QApplication::desktop()->cursor().setPos(0,0);

这应该将鼠标光标移动到桌面的左上角。

于 2012-11-22T03:09:19.093 回答