使用QMouseEvent在屏幕边缘记录鼠标移动

时间:2014-07-11 14:43:04

标签: qt pyqt pyqt4

我们希望使用鼠标移动事件(点击后)在QWidget内缩放/平移图像。到目前为止,这有以下例外:当光标到达屏幕边缘时,QMouseEvent位置不再变化,QWidget看起来鼠标不移动。

是否有一种优雅的方法可以在此屏幕边缘条件下从QMouseEvent中提取原始鼠标移动数据?或者是否可以在按下鼠标按钮时“冻结”光标位置,然后在不移动光标的情况下记录鼠标移动?

1 个答案:

答案 0 :(得分:0)

是的,你当然可以冻结光标。这个例子将你冻结了10秒:

p = QtGui.QCursor.pos()
t0 = time.time()
while time.time()-t0 < 10:
    QtGui.QCursor.setPos(p)

在给定的情况下,只要鼠标按钮关闭,每次有移动事件时,您都可以将鼠标移动到起始位置。