QFontDialog Class는 Font를 선택할 수 있게 해주는 대화창입니다. (QFontDialog 공식 문서) 참고
39-1 예제: ex38
import sys from PyQt5.QtWidgets import (QApplication, QWidget, QFontDialog, QVBoxLayout, QPushButton, QSizePolicy, QLabel) """ QSizePolicy.Fixed : sizeHint()의 크기로 고정 QSizePolicy.Minimum : sizeHint() 가 minimum이 된다. 이보다 작아질 수 없음. QSizePolicy.Maximum : sizeHint() 가 maximum이 된다. 이보다 커질 수 없음. QSizePolicy.Preferred : sizeHint()가 최적의 크기이나 크기변경 가능. 최소 크기는 minimumSizeHint()로 정해진다. QSizePolicy.Expanding : sizeHint()가 최적의 크기이지만, 더 작아질 수 있다. 공간이 더 커지는 경우에(Expanding) 그 공간을 다 사용하게된다. 예로 수평 슬라이더가 있다. QSizePolicy.MinimumExpanding : sizeHint()가 최소이면서 최적의 크기이다. 마찬가지로 공간이 더 늘어나면 그 공간을 더 사용한다. QSizePolicy.Ignored : sizeHint()가 무시된다. """ class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): btn = QPushButton('Dialog', self) btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) btn.move(20, 20) # btn.resize(200, 50) btn.clicked.connect(self.showDialog) vbox = QVBoxLayout() vbox.addWidget(btn) self.lbl = QLabel('The quick brown fox jumps over the lazy dog', self) self.lbl.move(130, 20) vbox.addWidget(self.lbl) self.setLayout(vbox) self.setWindowTitle('Font Dialog') self.setGeometry(300, 300, 250, 180) self.show() def showDialog(self): (font, ok) = QFontDialog.getFont() if ok: self.lbl.setFont(font) if __name__ == '__main__': app = QApplication(sys.argv) ex = MyApp() sys.exit(app.exec_()) |
39-2 설명
QPushButton 과 QLabel를 하나씩 만들고, QVBoxLayout에 배치 한 후 QFontDialog를 사용해서 라벨의 폰트를 바꿀 수 있도록 하였습니다.
(font, ok) = QFontDialog.getFont() |
폰트 다이얼로그를 띄우고, getFont() 메서드를 사용해서 선택한 폰트와 불 값을 반환받습니다.
if ok: self.lbl.setFont(font) |
setFont() 메서드를 사용해서 선택한 폰트를 라벨의 폰트로 설정해줍니다.
39-3 결과
'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글
41. QMessageBox (0) | 2021.07.28 |
---|---|
40. QFileDialog (0) | 2021.07.28 |
38. QColorDialog (0) | 2021.07.27 |
37. QInputDialog (0) | 2021.07.27 |
36. QTableWidget (0) | 2021.07.27 |