QGraphicsScene中mouseMoveEvent无效

1 投票
1 回答
895 浏览
提问于 2025-04-16 06:36

我正在用PyQt4实现一个画图程序。在QGraphicsScene中,我使用mouseMoveEvent来绘制连接连续鼠标坐标的线条。
下面是我的代码:

def mouseMoveEvent(self, event):                        
    x1 = event.pos().x()
    y1 = event.pos().y()       
    self.addLine(self.x0, self.y0, x1, y1, self.pen)    
    self.x0, self.y0 = x1, y1

x0和y0初始化为0,0。

我遇到的问题是,当我点击鼠标时,只在(0,0)这个点上画了一个点,之后就没有再绘制了。
同样的mouseMoveEvent在QGraphicsView中运行得很好。我是不是漏掉了什么?

1 个回答

0

我找到了问题所在。上面的代码没问题,只是 event.pos() 在 QGraphicsScene 中不管用。为了在 QGraphicsScene 中获取鼠标事件的坐标,我们必须使用 event.scenePos()

撰写回答