일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- python
- office
- pythongui
- git
- pandas
- pyqt5
- 아웃룩
- 파이썬GUI
- python3
- Android
- 안드로이드
- Outlook
- Windows10
- 비주얼베이직
- VBA
- 파이썬3
- 윈도우11
- Excel
- windows
- 파워포인트
- 문자열
- html
- 엑셀
- matlab
- Windows11
- win32com
- 윈도우10
- 오피스
- 깃
Appia의 IT세상
파이썬[Python GUI, PyQt5 Tutorial 007] PyQt5 라벨(QLabel)생성하기 - 이미지파일(PNG)출력하기 본문
파이썬[Python GUI, PyQt5 Tutorial 007] PyQt5 라벨(QLabel)생성하기 - 이미지파일(PNG)출력하기
Appia 2020. 6. 17. 06:59파이썬[Python GUI, PyQt5 Tutorial 007] PyQt5 라벨(QLabel)생성하기 -
이미지파일(PNG)출력하기
앞선 포스팅은 라벨(QLabel)에 텍스트를 출력하고 변경하는 방법에 대해서 살펴봤습니다. 그럼, 이번에는 텍스트가 이미지를 출력하는 방법에 대해서 살펴보고자 합니다. 물론 텍스트만 이용하면 매우 간단했지만, 이 부분에서는 추가적인 메소드와 QPixmap 클래스가 별도로 사용이 됩니다. 먼저, 다음 코드를 살펴보겠습니다.
<example>
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel from PyQt5.QtGui import QPixmap class QtGUI(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Appia Qt GUI") self.resize(700, 700) #라벨 생성 label1 = QLabel(self) label1.move(10,10) #이미지 관련 클래스 생성 및 이미지 불러오기 pixmap = QPixmap('D:\Image\i2.png') #이미지 관련 클래스와 라벨 연결 label1.setPixmap(pixmap) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = QtGUI() app.exec_() | cs |
위의 코드를 실행하면 다음과 같은 결과가 나옵니다.
그럼 위의 코드를 간단히 살펴보겠습니다.
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel from PyQt5.QtGui import QPixmap | cs |
앞선 포스팅에서 사용했던 모듈에 클래스 외에도 PyQt5.QtGui에서 QPixmap을 통해서 이미지를 불러올 수 있게 합니다.
#라벨 생성 label1 = QLabel(self) label1.move(10,10) #이미지 관련 클래스 생성 및 이미지 불러오기 pixmap = QPixmap('D:\Image\i2.png') #이미지 관련 클래스와 라벨 연결 label1.setPixmap(pixmap) self.show() | cs |
위에서 순서와 같이 먼저, 라벨(QLabel)을 생성하고, QPixmap을 통해서 이미지를 불러옵니다. 그런 후에 이 부분을 라벨에 연결합니다.
그럼, 위에서 몇가지를 추가하여 조금 더 효율적으로 보이도록 해보겠습니다. 먼저, 위에서는 위젯의 크기를 지정하고, 거기에 사이즈를 맞추는 형태였습니다. 그럼 이번에는 그림에 사이즈 맞게 자동으로 위젯을 조정되도록 하겠습니다.
위에 코드에서 먼저 다음 부분을 삭제하겠습니다.
self.resize(700, 700) | cs |
그런 후에 Class QtGUI 부분을 다음과 같이 수정하겠습니다.
>class QtGUI(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Appia Qt GUI") #라벨 생성 label1 = QLabel(self) label1.move(10,10) #이미지 관련 클래스 생성 및 이미지 불러오기 pixmap = QPixmap('D:\Image\i2.png') #이미지 관련 클래스와 라벨 연결 label1.setPixmap(pixmap) self.resize(pixmap.width()+20,pixmap.height()+20) self.show() | cs |
위의 코드에서 보이는 부분은 기존 코드와 크게 차이는 없지만, 앞서서 말한 resize부분을 삭제했고, 다음과 같은 부분을 추가하였습니다.
self.resize(pixmap.width()+20,pixmap.height()+20) | cs |
원래라면 pixmap.width(), pixmap.height()를 그대로 사용해도 되지만, 처음에 라벨을 10씩 이동한 점도 있고, 각각의 마진을 두는 것이 좋을 것 같아서 다음과 같이 +20을 추가하였습니다.
그럼, 결과를 한번 살펴보겠습니다.
최초에 실행했던 코드의 결과에 비해서 상당히 많이 깔끔해진 느낌입니다. 이와 같은 방법으로 사용해도 도움이 될 것 같습니다. 이번에는 그림의 크기를 1/2로 줄여보도록 하겠습니다.
#이미지 관련 클래스 생성 및 이미지 불러오기 pixmap = QPixmap('D:\Image\i2.png') pixmap =pixmap.scaled(int(pixmap.width()/2),int(pixmap.height()/2)) | cs |
위의 부분에서 pixmap.scaled(pixmap.width()/2,pixmap.height()/2)이 부분을 통해서 기존에 크기에서 2배로 줄이도록 합니다. 단 반드시 이를 통해서 기존 pixmap 또는 별도의 변수를 생성하여 할당 해주셔야 합니다. 그럼 위의 부분을 수정하여 실행한 결과는 다음과 같습니다.
이번 포스팅은 파이썬[Python GUI, PyQt5 Tutorial 007] PyQt5 라벨(QLabel)생성하기 - 이미지파일(PNG)출력하기 라는 주제로 라벨에 이미지를 불려와 출력하는 부분에 대해서 살펴봤습니다.
궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글을 남겨주시길 바랍니다. 감사합니다.