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

Respuestas a la pregunta(1)

Su respuesta a la pregunta