Удаление нарисованных объектов PyQt

OmgZomg

Новичок
Пользователь
Апр 22, 2020
30
2
8
Код, который рисует примитивы на изображении.
Python:
import sys

from PyQt5 import QtCore, QtGui, QtWidgets  # PyQt5


class MyWidget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.resize(600, 400)
        self.begin = QtCore.QPoint()
        self.end = QtCore.QPoint()
        self.pix = QtGui.QPixmap(600, 400)
        self.pix.fill(QtCore.Qt.white)

    def paintEvent(self, event):
        qp = QtGui.QPainter(self)
        qp.drawPixmap(0, 0, self.pix)
        br = QtGui.QBrush(QtGui.QColor("transparent"))
        qp.setBrush(br)
        if self.begin and self.end:
            rect = QtCore.QRect(self.begin, self.end)
            qp.drawRect(rect)

    def mousePressEvent(self, event):
        if event.button() == QtCore.Qt.LeftButton:
            self.begin = event.pos()
            self.end = self.begin
            self.update()

    def mouseMoveEvent(self, event):
        if event.buttons() == QtCore.Qt.LeftButton:
            self.end = event.pos()
            self.update()

    def mouseReleaseEvent(self, event):
        if event.button() == QtCore.Qt.LeftButton:
            painter = QtGui.QPainter(self.pix)
            rect = QtCore.QRect(self.begin, self.end)
            painter.drawRect(rect)
            self.begin = self.end = QtCore.QPoint()
            self.update()


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = MyWidget()
    window.show()
    sys.exit(app.exec_())

Как теперь правильно написать удаление фигуры? Допустим, накидал прямоугольников и нужно удалить лишние. Мышкой выделяю нужный и удаляю. Как это правильно сделать?
 

Форум IT Специалистов