QT4.8嵌入.使用QCursor :: SetPos()调整鼠标输入会导致一个抽搐的光标

Qt4.8 embedded. Adjusting mouse input with QCursor::setPos() results in a twitching cursor

本文关键字:光标 一个 抽搐 鼠标 使用 嵌入 QCursor SetPos QT4 调整 输入      更新时间:2023-10-16

我试图通过计算和设置指针的新位置,每个 mousemoveevent()来调整用户鼠标输入(减速/固定鼠标指针)。

在执行 mousemoveevent()之前,指针在其正常位置上绘制。这会导致外观不好,抽搐光标。

这是我如何尝试将指针保持在某个地方而忽略用户输入的示例。
预期行为:当我移动鼠标时,指针保持稳定。
观察到的Bahaviour:指针摇晃。对于一秒钟的一小部分,在移动鼠标的位置绘制了一个新的指针,然后将其移回了它的 oldposition 。。

void MainWindow::mouseMoveEvent(QMouseEvent *)
{
    // [event->accept();] Setting this does not help
    // [setCursor(Qt::BlankCursor);] Setting this does not help
    QCursor::setPos(oldPosition);
    // [setCursor(Qt::ArrowCursor);]
}

P.S。可能还有其他方法可以调整嵌入式QT中的小鼠灵敏度。我做对吗?

简短答案:no。

不幸的是,只有仅使用QT库来调整鼠标灵敏度。

您正在遇到的抽搐是因为OS完成了绘制鼠标指针的工作,其频率可能与您从OS接收鼠标移动事件的频率不同。

也无法告诉QT或OS在绘制光标之前向您发送鼠标移动事件。

解决方法:您可以完全隐藏鼠标指针,然后绘制自己的指针。这样,当绘制光标避免故障时,您将完全控制光标。