2017-03-13 10 views
3

저는 PyQt5를 처음 접했고로드 된 이미지 위에 QPainter를 그리는 방법에 대한 답을 찾지 못했습니다 (QPixmap ("myPic.png ")). 나는 paintEvent 메서드 내에서 그것을 시도했지만 작동하지 않았다. 아래 스 니펫에로드 된 이미지 위에 선을 그려 넣으려면 어떻게해야합니까?PyQt5 (Python)의 이미지 위에 그려 내기

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_()) 
+0

이미지를 가로선으로 표시 하시겠습니까? 아니면 변경된 이미지를 저장 하시겠습니까? – eyllanesc

+0

첫 번째 것. qpainter.drawLine()과 같은 이미지 위에 라인을 표시하십시오. – Johan

답변

4

사용 paintEventQPainter :

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

enter image description here

출력 :

enter image description here

+0

정확히 내가 원했던 것, 빠른 답장을 보내 주셔서 감사합니다! – Johan