【问题标题】:Weird cursor behavioir in QtQt 中奇怪的光标行为
【发布时间】:2012-11-22 02:24:24
【问题描述】:

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

如果不够清楚,我可以给代码sn-p。

【问题讨论】:

    标签: c++ qt cursor mouse


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。它确实解决了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多