2022-02-26 13:11:28

pyside 또는 pyqt에서 위젯이라는 것은 UI를 구성하는 하나하나의 요소를 뜻한다. 버튼, 라벨, 체크박스 등등이 모두 위젯이다. 

 

오늘은 이러한 위젯 내 글자 크기를 변경하는 방법에 대해 알아보자. 어렵지 않으니 바로 코드를 살펴보자.

 

from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget

import sys


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        widget1 = QLabel("hello world")

        widget2 = QLabel("hello world")
        font = widget2.font()
        font.setPointSize(30)
        widget2.setFont(font)

        widget3 = QPushButton("버튼")
        font = widget3.font()
        font.setPointSize(50)
        widget3.setFont(font)

        layout = QVBoxLayout()
        layout.addWidget(widget1)
        layout.addWidget(widget2)
        layout.addWidget(widget3)

        container = QWidget()
        container.setLayout(layout)

        self.setCentralWidget(container)


app = QApplication(sys.argv)

window = MainWindow()
window.show()

app.exec()

 

 위 코드를 실행하면 다음과 같이 세 개의 위젯이 수직으로 정렬되어 있는 창이 하나 뜰 것이다.

 

 

첫번째 라벨 위젯보다 두번째 라벨 위젯의 폰트 크기가 큰 것을 확인할 수 있다. 또한 버튼 위젯에 있는 폰트 크기는 두번째 라벨 위젯보다 더 크다. 

 

위 전체 코드에서 폰트 사이즈를 변경해주는 코드는 바로 이 부분이다. 

 

widget2 = QLabel("hello world")
font = widget2.font()
font.setPointSize(30)
widget2.setFont(font)

 

현재 위젯에 설정되어 있는 폰트 객체를 가지고 와서 새롭게 폰트 사이즈를 지정해준다음에 그것을 해당 위젯에 적용해주는 형식이다.