본문 바로가기

프로그래밍/PyQt5 GUI

16. QLabel

QLabel 위젯은 텍스트 또는 이미지 라벨(분류표)을 만들 때 쓰입니다. (QLabel 공식 문서) 참고

라벨은 기본적으로 수평 방향으로 왼쪽, 수직 방향으로 가운데 정렬이지만 setAlignment() 메서드를 통해 정렬합니다.

16-1 예제: ex15

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


class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        lbl1 = QLabel('First Label', self)
        lbl1.setAlignment(Qt.AlignCenter)

        lbl2 = QLabel('Second Label', self)
        lbl2.setAlignment(Qt.AlignVCenter)

        font1 = lbl1.font()
        font1.setPointSize(20)

        font2 = lbl2.font()
        font2.setFamily('Times New Roman')
        font2.setBold(True)

        lbl1.setFont(font1)
        lbl2.setFont(font2)

        layout = QVBoxLayout()
        layout.addWidget(lbl1)
        layout.addWidget(lbl2)

        self.setLayout(layout)

        self.setWindowTitle('QLabel')
        self.setGeometry(300, 300, 300, 200)
        self.show()


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

16-2 설명

lbl1 = QLabel('First Label', self)
lbl1.setAlignment(Qt.AlignCenter)
  • QLabel 생성자에는 라벨 텍스트와 부모 위젯을 입력합니다.
  • setAlignment() 메서드로 정렬을 설정합니다.
  • Qt.AlignCenter로 설정해주면 수평, 수직 방향 모두 가운데 위치합니다.
font1 = lbl1.font()
font1.setPointSize(20)
  • 라벨에 사용될 폰트를 생성합니다.
  • setPointSize() 메서드로 폰트의 크기를 설정합니다.
lbl2 = QLabel('Second Label', self)
lbl2.setAlignment(Qt.AlignVCenter)
  • 두 번째 라벨은 수직 방향으로 가운데 (Qt.AlignVCenter)로 설정합니다.
  • 수평 방향으로 가운데 설정하려면 Qt.AlignHCenter를 입력합니다.
font2 = lbl2.font()
font2.setFamily('Times New Roman')
font2.setBold(True)
  • 두 번째 라벨에 설정할 폰트를 하나 만들고, setFamily() 메서드로 폰트의 종류를 'Times New Roman'으로 설정합니다.
  • setBold(True)로 폰트를 진하게 설정합니다.
  • 기본 폰트 크기는 13 입니다.

16-3 결과

'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글

18. QRadioButton  (0) 2021.07.23
17. QCheckBox  (0) 2021.07.23
15. QPushButton  (0) 2021.07.23
14. 그리드 레이아웃  (0) 2021.07.23
13. 박스 레이아웃  (0) 2021.07.22