QPixmap

QPixmap은 이미지를 다룰 때 사용되는 위젯입니다.

지원하는 파일 형식은 아래와 같습니다. 어떤 이미지 형식은 ‘읽기’만 가능합니다.


../_images/4_12_qpixmap_supported_format.png

QPixmap을 이용해서 창에 하나의 이미지를 나타내 보겠습니다.


예제

## Ex 5-12. QPixmap.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt


class MyApp(QWidget):

 def __init__(self):
     super().__init__()
     self.initUI()

 def initUI(self):
     pixmap = QPixmap('landscape.jpg')

     lbl_img = QLabel()
     lbl_img.setPixmap(pixmap)
     lbl_size = QLabel('Width: '+str(pixmap.width())+', Height: '+str(pixmap.height()))
     lbl_size.setAlignment(Qt.AlignCenter)

     vbox = QVBoxLayout()
     vbox.addWidget(lbl_img)
     vbox.addWidget(lbl_size)
     self.setLayout(vbox)

     self.setWindowTitle('QPixmap')
     self.move(300, 300)
     self.show()


if __name__ == '__main__':
 app = QApplication(sys.argv)
 ex = MyApp()
 sys.exit(app.exec_())

이미지 하나가 위젯 창에 나타납니다.



설명

pixmap = QPixmap('landscape.jpg')

파일 이름을 입력해주고, QPixmap 객체 (pixmap)를 하나 만듭니다.



lbl_img = QLabel()
lbl_img.setPixmap(pixmap)

라벨을 하나 만들고, setPixmap을 이용해서 pixmap을 라벨에 표시될 이미지로 설정해줍니다.



lbl_size = QLabel('Width: '+str(pixmap.width())+', Height: '+str(pixmap.height()))
lbl_size.setAlignment(Qt.AlignCenter)

width()와 height()는 이미지의 너비, 높이를 반환합니다.

너비, 높이를 표시하는 라벨 (lbl_size)를 하나 만들고, setAlignment 메서드를 이용해서 가운데 정렬로 설정합니다.



vbox = QVBoxLayout()
vbox.addWidget(lbl)
self.setLayout(vbox)

수평 박스 레이아웃을 하나 만들고 라벨을 배치합니다.

setLayout()을 이용해서 수평 박스(hbox)를 창의 레이아웃으로 지정해 줍니다.



결과

../_images/4_12_qpixmap.png ../_images/4_12_qpixmap_mac.png

5-12. QPixmap을 이용한 이미지 표시하기.


관련 페이지

이전글/다음글

다음글 :