Форум сайта python.su
Код, который рисует примитивы на изображении.
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_())
Офлайн
:) То что написано Qтем то не вырубишь топором.
Не знаю как там в Qt но обычно понятие прямоугольник есть только на момент выполнения qp.drawRect(rect) Те ничего выделить нельзя. Чтобы стереть один объект надо стереть все, а потом нарисовать все кроме того что стерли.
Если вам надо управлять объектами то смотрите в сторону pygame,sdl,sfml и тому подобного.
Офлайн
Там надо делать объекты, потом размещать их друг на друге, а потом уже любой из них раскрашивать и перекрашивать или вообще скрывать. То есть это не через рисование одного на другом делается, а через изменение свойств объектов.
doza_andВот они так и устроены. Есть спрайты (прямоугольники), на которых идёт рисование, а мультипликация вся выполняется через смену этих спрайтов. Никто их не перерисовывает, их просто меняют один на другой.
то смотрите в сторону pygame,sdl
Отредактировано py.user.next (Март 9, 2021 21:56:08)
Офлайн
> то смотрите в сторону pygame,sdl
Лучше смотри в сторону QGraphicsScene
> Я вот в эту играл (в смысле прошёл её), она довольно интересная.
А я вот это проходил, правда давно, году в 1997… https://ru.wikipedia.org/wiki/Prehistorik_2
Офлайн