pyqt agregar rectángulo en Qgraphicsscene
Tengo una escena como esta
class Scene(QtWidgets.QGraphicsScene):
def __init__(self, parent=None):
super(Scene, self).__init__(parent)
def mousePressEvent(self, event):
print('scene pressed')
self.wid = MyRect(event.pos(), event.pos())
self.addItem(self.wid)
self.wid.show()
Me gustaría que la clase MyRect (QtWidgets.QGraphicsRectItem) con pintor, evento de mouse, etc. sea un rectángulo arrastrable. todas las cosas en MyRect
ntonces, podría tener muchos rectángulos en la escena e incluso después de dibujar una línea entre ellos, etc. (tipo de aplicación de diagrama), pero manteniendo las opciones editables relacionadas con objetos en MyRect, MyLine, ...
Pensé
class MyRect(QtWidgets.QGraphicsRectItem):
def __init__(self, begin, end, parent=None):
super().__init__(parent)
self.begin = begin
self.end = end
def paintEvent(self, event):
print('painting')
qp = QtGui.QPainter(self)
qp.drawRect(QtCore.QRect(self.begin, self.end))
def mousePressEvent(self, event):
self.begin = event.pos()
self.end = event.pos()
self.update()
def mouseMoveEvent(self, event):
self.end = event.pos()
self.update()
def mouseReleaseEvent(self, event):
self.begin = event.pos()
self.end = event.pos()
self.update()
Pero no funciona (el evento de pintura no se inició mientras que el evento presionado con el mouse en la escena está iniciado)
No encontré lo que buscaba a través de la web, así que comencé a hacerlo solo. Estoy bastante seguro de que es un punto de partida imprescindible, pero no puedo encontrarlo