QFontComboBox是一个PyQt5小部件,它允许用户从可用的字体列表中选择一个字体。它是QComboBox的子类,但使用了一个特定的模型来显示可用字体。
下面是一些常用的QFontComboBox方法:
- setFontFilters(fontFilters):设置字体过滤器。可以通过将QFontComboBox.FontFilter枚举值传递给此方法来限制可用字体的范围。例如,设置fontFilters为QFontComboBox.ScalableFonts将限制可用字体为可缩放字体。
- setCurrentFont(font):设置当前选中的字体。
- currentFont():获取当前选中的字体。
- currentIndexChanged(int index):当选择项发生更改时发出信号。该信号的参数为当前选中项的索引。
以下是一个简单的例子,演示如何使用QFontComboBox选择字体并将其应用于文本编辑器:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QFontComboBox
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.text_edit = QTextEdit(self)
self.setCentralWidget(self.text_edit)
self.font_combo_box = QFontComboBox(self)
self.font_combo_box.currentFontChanged.connect(self.on_font_changed)
self.addToolBar().addWidget(self.font_combo_box)
def on_font_changed(self, font):
self.text_edit.setCurrentFont(font)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
在上面的例子中,我们创建了一个QMainWindow并向其添加了一个QTextEdit。我们还添加了一个QFontComboBox小部件到主窗口的工具栏。当用户从下拉列表中选择一个字体时,我们将当前字体应用于文本编辑器。这是通过将QFontComboBox的currentFontChanged信号连接到MainWindow类的on_font_changed槽来实现的。