1) При оформлении фона через QPixMap выводится ошибка, а если использовать self.image для задание фона, то картинка спокойно грузится и можно рисовать
2)Как исправить мой код чтобы он оптимально работал с использованием QPixmap
import sys
from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QHBoxLayout
from PyQt5.QtGui import QPainter, QColor, QMouseEvent, QImage, QPixmap, QPen
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.flag = False
self.initUI()
def initUI(self):
hbox = QHBoxLayout(self)
pixmap = QPixmap('picture.png')
painter = QPainter(pixmap)
painter.drawEllipse(29, 29, 29, 29)
painter.end()
label = QLabel()
label.setPixmap(pixmap)
hbox.addWidget(label)
self.show()
def mousePressEvent(self, e):
if e.button() == Qt.LeftButton:
self.flag = True
self.paint = QPainter(self.image)
self.ellips(e)
def paintEvent(self, e):
paint = QPainter(self)
paint.drawImage(0, 0, self.image)
def mouseMoveEvent(self, e):
if self.flag:
print(e.pos())
self.ellips(e)
def ellips(self, e):
self.paint.setBrush(QColor('yellow'))
self.paint.drawEllipse(e.pos(), 20, 20)
self.update()
app = QApplication(sys.argv)
w = Example()
sys.exit(app.exec_())