So I have a QraphicsScene with a QGraphicsPolygonItem , which I flag as movable. And I also override the MousePressEvent. My code snippet tll now.
def mousePressEvent(self , e):
self.endx = e.x()
self.endy = e.y()
if self.sender == 1:
self.LineChange(self.endx , self.endy)
#...
def CreateFun(self):
poly = QtGui.QPolygonF([QtCore.QPointF(100 , 100) , QtCore.QPointF(100 , 200) , QtCore.QPointF(200 , 200)])
self.polygon = QtGui.QGraphicsPolygonItem(poly)
self.scene.addItem(self.polygon)
self.polygon.setFlag(QtGui.QGraphicsItem.ItemIsMovable)
However the polygon isn’t moving . And when I comment out the MousePressEvent , it moves fine . My guess is that the MousePressEvent , catches it before the PolygonItem does.
And the above functions are from a class inherited from QtGui.QGraphicsView. Any suggestions?
You should call the base implementation for the
mousePressEvent.QGraphicsViewnormally passes these clicks to other items that might use them. If you don’t call the base implementation you’re basically ‘trapping’ the click.Modify your
mousePressEventas following: