For a Python project, I have to draw an image with a painter over a Qlabel widget already filled by a picture. My problem is that my image is systematically drawn behind my Label. I simplified the problem by this code, my goal is to paint "cigale1.png" onto "arrierplan.png" which is in a Label :
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from test_ihm_main import *
class MonAppli(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.Label.setPixmap(QtGui.QPixmap("arrierplan.png"))
self.paintEvent(self.ui.Label)
def paintEvent(self,e):
qp = QtGui.QPainter(self)
qp.begin(self)
qp.drawPixmap(450,50,QtGui.QPixmap("cigale1.png"))
qp.end()
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MonAppli()
window.show()
app.exec_()
And here is my Ui_MainWindow class :
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.Quitter = QtWidgets.QPushButton(self.centralwidget)
self.Quitter.setGeometry(QtCore.QRect(670, 520, 113, 32))
self.Quitter.setObjectName("Quitter")
self.Label = QtWidgets.QLabel(self.centralwidget)
self.Label.setGeometry(QtCore.QRect(400, 30, 361, 231))
self.Label.setText("")
self.Label.setObjectName("Label")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.Quitter.clicked.connect(MainWindow.close)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.Quitter.setText(_translate("MainWindow", "Quitter"))
I ve read the doc a lot, read a lot of topic but nothing worked...
Thanks by advance,
T.C