PyQt5는 Python에서 GUI 애플리케이션을 개발할 수 있도록 돕는 라이브러리입니다. QFontDialog는 폰트를 선택할 수 있는 대화 상자를 제공하며, 사용자가 다양한 폰트 옵션을 선택할 수 있게 해줍니다. 이번 포스팅에서는 PyQt5의 QFontDialog를 사용하는 방법을 단계별로 설명하겠습니다.
1. QFontDialog 기본 사용법
QFontDialog를 사용하여 폰트를 선택하는 간단한 예제를 만들어 보겠습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QFontDialog, QLabel
class FontDialogExample(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
self.label = QLabel("폰트를 선택해 주세요", self)
layout.addWidget(self.label)
self.button = QPushButton("폰트 선택", self)
self.button.clicked.connect(self.showFontDialog)
layout.addWidget(self.button)
self.setLayout(layout)
self.setWindowTitle('QFontDialog 예제')
self.setGeometry(300, 300, 300, 200)
self.show()
def showFontDialog(self):
font, ok = QFontDialog.getFont()
if ok:
self.label.setFont(font)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = FontDialogExample()
sys.exit(app.exec_())
위 코드에서는 QFontDialog.getFont()를 사용하여 폰트 대화 상자를 띄우고, 사용자가 선택한 폰트를 QLabel에 적용하는 예제를 보여줍니다.
2. QFontDialog 커스터마이징
QFontDialog는 기본 기능 외에도 다양한 옵션을 제공합니다. 예를 들어, 초기 폰트를 설정하거나 특정 스타일을 제외하는 등의 커스터마이징이 가능합니다.
def showCustomFontDialog(self):
initialFont = self.label.font()
options = QFontDialog.FontDialogOptions()
options |= QFontDialog.NoButtons # 예: 확인 및 취소 버튼을 숨기기
font, ok = QFontDialog.getFont(initialFont, self, "커스텀 폰트 선택기", options)
if ok:
self.label.setFont(font)
위 예제에서는 FontDialogOptions를 사용하여 대화 상자의 옵션을 커스터마이징하는 방법을 보여줍니다. QFontDialog.NoButtons 옵션은 대화 상자의 확인 및 취소 버튼을 숨깁니다.
3. QFontDialog 신호 처리
QFontDialog는 사용자가 폰트를 선택할 때마다 신호를 발생시킵니다. 이를 활용하여 사용자가 실시간으로 폰트 변경 사항을 확인할 수 있습니다.
class FontDialogWithSignals(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout()
self.label = QLabel("실시간 폰트 미리보기", self)
layout.addWidget(self.label)
self.button = QPushButton("폰트 선택", self)
self.button.clicked.connect(self.showFontDialog)
layout.addWidget(self.button)
self.setLayout(layout)
self.setWindowTitle('QFontDialog 신호 처리 예제')
self.setGeometry(300, 300, 300, 200)
self.show()
def showFontDialog(self):
fontDialog = QFontDialog(self)
fontDialog.currentFontChanged.connect(self.onCurrentFontChanged)
fontDialog.exec_()
def onCurrentFontChanged(self, font):
self.label.setFont(font)
위 예제에서는 currentFontChanged 신호를 처리하여 사용자가 폰트를 변경할 때마다 QLabel의 폰트를 업데이트합니다.
이번 포스팅에서는 PyQt5의 QFontDialog를 사용하는 방법에 대해 알아보았습니다. 기본 사용법부터 커스터마이징 및 신호 처리를 활용한 고급 사용법까지 다루어 보았습니다. QFontDialog를 활용하면 사용자가 애플리케이션에서 폰트를 손쉽게 선택할 수 있도록 할 수 있습니다. 이를 통해 보다 직관적이고 사용자 친화적인 인터페이스를 제공할 수 있습니다.
QFontDialog를 통해 폰트 선택 기능을 구현해 보세요! 여러분의 애플리케이션에 멋진 기능을 추가할 수 있을 것입니다.
'프로그래밍 > python' 카테고리의 다른 글
PyQt5 QMessageBox 상세한 사용법 (0) | 2024.06.09 |
---|---|
PyQt5 QFileDialog 상세한 사용법 (0) | 2024.06.09 |
PyQt5로 색상 선택 다이얼로그 만들기 (0) | 2024.06.07 |
PyQt5 QTextBrowser 사용법 가이드 (0) | 2024.06.04 |
PyQt5 QDateEdit 위젯 사용법 (0) | 2024.06.02 |