Dibujar sobre la imagen.

Soy nuevo en PyQt5 y no pude encontrar ninguna respuesta que me funcionara sobre cómo dibujar con QPainter sobre una imagen cargada (QPixmap (“myPic.png”)). Intenté hacerlo dentro de un método paintEvent pero no funcionó. Si quiero dibujar una línea en la parte superior de la imagen cargada en el fragmento de código a continuación, ¿cómo podría hacerlo?

import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * class Example(QWidget): def __init__(self): super().__init__() self.setGeometry(30, 30, 500, 300) self.initUI() def initUI(self): self.pixmap = QPixmap("myPic.png") lbl = QLabel(self) lbl.setPixmap(self.pixmap) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) 

Utilice paintEvent y QPainter :

 import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class Example(QWidget): def __init__(self): super().__init__() self.setGeometry(30, 30, 500, 300) def paintEvent(self, event): painter = QPainter(self) pixmap = QPixmap("myPic.png") painter.drawPixmap(self.rect(), pixmap) pen = QPen(Qt.red, 3) painter.setPen(pen) painter.drawLine(10, 10, self.rect().width() -10 , 10) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() ex.show() sys.exit(app.exec_()) 

myPic.png

introduzca la descripción de la imagen aquí

Salida:

introduzca la descripción de la imagen aquí