QFontDialog是一个用于选择字体的Qt控件基类,可以用于在应用程序中显示字体选择对话框。以下是QFontDialog类的一些常用API及其说明:
一、 构造函数
QFontDialog(QWidget *parent = nullptr)
构造一个新的字体选择对话框,父窗口为parent。
二、基本属性
- setFont(const QFont &font):设置对话框的初始字体
- setCurrentFont(const QFont &font):设置当前选择的字体
- setOption(QFontDialog::FontDialogOption option, bool on = true):设置字体选择对话框的选项
三、基本方法
- getFont(QFont *font, QWidget *parent = nullptr):显示字体选择对话框,并返回用户选择的字体
- getFont(QWidget *parent = nullptr):显示字体选择对话框,并返回用户选择的字体
以下是一个简单的示例,演示了如何使用QFontDialog来创建一个简单的字体选择对话框:
import sys
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QFontDialog
class FontDialogDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Font Dialog Demo")
self.label = QLabel("Hello, PyQt5!")
self.label.setFont(QFont("Arial", 16))
self.button = QPushButton("Choose Font")
self.button.clicked.connect(self.showFontDialog)
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(self.button)
self.setLayout(layout)
def showFontDialog(self):
font, ok = QFontDialog.getFont(self.label.font(), self, "Select Font")
if ok:
self.label.setFont(font)
app = QApplication(sys.argv)
dialog = FontDialogDemo()
dialog.show()
sys.exit(app.exec_())
在这个示例中,我们创建了一个名为FontDialogDemo的自定义窗口类,它包含一个标签和一个按钮。当点击按钮时,会显示字体选择对话框,并将用户选择的字体应用于标签。在showFontDialog方法中,我们调用QFontDialog.getFont方法来显示字体选择对话框,并将当前标签的字体作为初始字体。如果用户单击了"OK"按钮,则会将所选字体应用于标签。