pyqt adicionar retângulo no Qgraphicsscene
Tenho uma cena 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()
Gostaria que a classe MyRect (QtWidgets.QGraphicsRectItem) com pintor, evento de mouse e assim por diante fosse um retângulo arrastável. todas as coisas no MyRect
Então, eu poderia ter muitos retângulos na cena e mesmo depois de desenhar uma linha entre eles e assim por diante (tipo de aplicativo de diagrama), mas mantendo as opções editáveis relacionadas aos objetos no MyRect, MyLine, ....
Eu pensei
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()
Mas eu não trabalho (evento de pintura não iniciado, enquanto o evento pressionado pelo mouse na cena é associado)
Não encontrei o que queria através da web, então comecei a fazê-lo sozinho. Tenho certeza de que é um ponto de partida conhecido, mas não consigo encontrá-lo