我试图通过计算和设置每个 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嵌入式中调整鼠标灵敏度。我做得对吗?
答案 0 :(得分:1)
简短回答:否。
不幸的是,仅使用QT库无法调整鼠标灵敏度。
您正在经历的抽搐是因为操作系统完成了绘制鼠标指针的工作,其频率可能与您从操作系统接收鼠标移动事件的频率不同。
在绘制光标的每一帧之前,也无法告诉QT或操作系统向您发送鼠标移动事件。
解决方法:您可以完全隐藏鼠标指针,并绘制自己的指针。通过这种方式,您可以完全控制绘制光标的时间,避免毛刺。