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



我们想使用鼠标移动事件(点击后)来缩放/平移QWidget中的图像。到目前为止,这是伟大的工作与以下例外:当光标到达屏幕的边缘,QMouseEvent的位置不再改变,它似乎是QWidget,鼠标不移动。

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

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

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

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

最新更新