Qt 移动鼠标忽略QCursor.setPos()?

Qt 移动鼠标忽略QCursor.setPos()?,qt,cursor,mouseevent,Qt,Cursor,Mouseevent,当光标在我的小部件中时,我正在调用QCursor.setPos()。当我这样做的时候,mouseMoveEvent被调用,而我不希望它被调用。在Java/Swing中,我可以在不发送事件的情况下移动光标。我是否可以执行类似的操作,以便调用QCursor.setPos(),从而不发送mouseMoveEvent 如果没有触发mouseMoveEvent,似乎无法设置POS, 也许你考虑创建一个: bool disableMoveProcess; 把它作为你的逻辑运行的标志 我使用此方法调用QLi

当光标在我的小部件中时,我正在调用QCursor.setPos()。当我这样做的时候,mouseMoveEvent被调用,而我不希望它被调用。在Java/Swing中,我可以在不发送事件的情况下移动光标。我是否可以执行类似的操作,以便调用QCursor.setPos(),从而不发送mouseMoveEvent

如果没有触发mouseMoveEvent,似乎无法设置POS, 也许你考虑创建一个:

bool disableMoveProcess;
把它作为你的逻辑运行的标志

我使用此方法调用QListWidgetItem::setSelected
没有make QListWidget::itemSelectionChanged触发我的代码。

看起来没有触发mouseMoveEvent就无法设置POS, 也许你考虑创建一个:

bool disableMoveProcess;
把它作为你的逻辑运行的标志

我使用此方法调用QListWidgetItem::setSelected
没有make QListWidget::itemSelectionChanged触发我的代码。

我只是跟踪鼠标移动之间的差异,因此,例如,如果鼠标向右移动5,我将存储5,如果鼠标向左移动5,则忽略下一个事件(这意味着它可能被setPos调用)。不是很优雅,但它似乎工作可靠

我最终只是跟踪鼠标移动之间的差异,因此,例如,如果鼠标向右移动5,我将存储5,如果鼠标向左移动5,则忽略下一个事件(这意味着它可能被setPos调用)。不是很优雅,但它似乎工作可靠

这似乎对我有用:

myWidget->clearFocus();
QCursor::setPos(pos);
myWidget->setFocus();

这似乎对我有用:

myWidget->clearFocus();
QCursor::setPos(pos);
myWidget->setFocus();