QFontComboBox Class
QFontComboBox 控件是一个下拉列表框,允许用户选择字体家族。更多内容...
| 标题: | #include <QFontComboBox> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QComboBox |
公共类型
| enum | FontFilter { AllFonts, ScalableFonts, NonScalableFonts, MonospacedFonts, ProportionalFonts } |
| flags | FontFilters |
属性
- currentFont : QFont
- fontFilters : FontFilters
- writingSystem : QFontDatabase::WritingSystem
公共函数
| QFontComboBox(QWidget *parent = nullptr) | |
| virtual | ~QFontComboBox() |
| QFont | currentFont() const |
(since 6.3) std::optional<QFont> | displayFont(const QString &fontFamily) const |
| QFontComboBox::FontFilters | fontFilters() const |
(since 6.3) QString | sampleTextForFont(const QString &fontFamily) const |
(since 6.3) QString | sampleTextForSystem(QFontDatabase::WritingSystem writingSystem) const |
(since 6.3) void | setDisplayFont(const QString &fontFamily, const QFont &font) |
| void | setFontFilters(QFontComboBox::FontFilters filters) |
(since 6.3) void | setSampleTextForFont(const QString &fontFamily, const QString &sampleText) |
(since 6.3) void | setSampleTextForSystem(QFontDatabase::WritingSystem writingSystem, const QString &sampleText) |
| void | setWritingSystem(QFontDatabase::WritingSystem) |
| QFontDatabase::WritingSystem | writingSystem() const |
重新实现的公共函数
| virtual QSize | sizeHint() const override |
公共插槽
| void | setCurrentFont(const QFont &f) |
信号
| void | currentFontChanged(const QFont &font) |
重新实现的受保护函数
| virtual bool | event(QEvent *e) override |
详细说明
组合框中填充了按字母顺序排列的字体家族名称列表,例如 Arial、Helvetica 和 Times New Roman。在可能的情况下,字体家族名称会使用该字体的实际样式显示。对于 Symbol 等字体,由于其名称无法在字体本身中呈现,因此会在字体家族名称旁边显示该字体的样本。
QFontComboBox 常用于工具栏中,通常与一个用于控制字体大小的QComboBox 以及两个分别用于控制粗体和斜体的QToolButton配合使用。
当用户选择新字体时,除了会发出currentIndexChanged()信号外,还会发出currentFontChanged()信号。
调用setWritingSystem() 可指示 QFontComboBox 仅显示支持指定书写系统的字体,调用setFontFilters() 则可过滤掉某些类型的字体,例如非可缩放字体或等宽字体。

另请参阅 QComboBox 、QFont 、QFontInfo 、QFontMetrics 以及QFontDatabase 。
成员类型文档
enum QFontComboBox::FontFilter
flags QFontComboBox::FontFilters
此枚举可用于仅在字体下拉列表中显示特定类型的字体。
| 常量 | 值 | 描述 |
|---|---|---|
QFontComboBox::AllFonts | 0 | 显示所有字体 |
QFontComboBox::ScalableFonts | 0x1 | 显示可缩放字体 |
QFontComboBox::NonScalableFonts | 0x2 | 显示不可缩放字体 |
QFontComboBox::MonospacedFonts | 0x4 | 显示等宽字体 |
QFontComboBox::ProportionalFonts | 0x8 | 显示比例字体 |
FontFilters 类型是QFlags<FontFilter> 的 typedef 定义。它存储了 FontFilter 值的按“或”运算组合。
属性文档
currentFont : QFont
该属性保存当前选定的字体
访问函数:
| QFont | currentFont() const |
| void | setCurrentFont(const QFont &f) |
通知信号:
| void | currentFontChanged(const QFont &font) |
另请参阅 currentIndex 和currentText 。
fontFilters : FontFilters
该属性存储下拉列表的筛选条件
默认情况下,会列出所有字体。
Access 函数:
| QFontComboBox::FontFilters | fontFilters() const |
| void | setFontFilters(QFontComboBox::FontFilters filters) |
另请参阅 writingSystem 。
writingSystem : QFontDatabase::WritingSystem
该属性存储用作下拉列表筛选条件的书写系统
如果 `script ` 为 `QFontDatabase::Any `(默认值),则会列出所有字体。
访问函数:
| QFontDatabase::WritingSystem | writingSystem() const |
| void | setWritingSystem(QFontDatabase::WritingSystem) |
另请参阅 fontFilters 。
成员函数文档
[explicit] QFontComboBox::QFontComboBox(QWidget *parent = nullptr)
根据给定的parent 创建一个字体下拉列表框。
[virtual noexcept] QFontComboBox::~QFontComboBox()
销毁该组合框。
[signal] void QFontComboBox::currentFontChanged(const QFont &font)
每当当前字体发生变化时,都会触发此信号,并携带新的font 属性。
注意: 这是属性currentFont的通知 信号。
另请参阅 currentFont 。
[since 6.3] std::optional<QFont> QFontComboBox::displayFont(const QString &fontFamily) const
返回用于显示给定fontFamily 的字体(如果已设置)(当组合框处于打开状态时)。
该函数于 Qt 6.3 中引入。
另请参阅 setDisplayFont()。
[override virtual protected] bool QFontComboBox::event(QEvent *e)
重写了:QComboBox::event(QEvent *event)。
[since 6.3] QString QFontComboBox::sampleTextForFont(const QString &fontFamily) const
返回给定fontFamily 在组合框打开时,字体名称后显示的示例文本。
该函数自 Qt 6.3 起引入。
另请参阅 setSampleTextForFont()。
[since 6.3] QString QFontComboBox::sampleTextForSystem(QFontDatabase::WritingSystem writingSystem) const
返回给定writingSystem 在组合框展开时,字体名称后显示的示例文本。
该函数在 Qt 6.3 中引入。
另请参阅 setSampleTextForSystem()。
[since 6.3] void QFontComboBox::setDisplayFont(const QString &fontFamily, const QFont &font)
设置用于显示给定fontFamily 的font (当下拉列表打开时)。
该函数自 Qt 6.3 起引入。
另请参阅 displayFont()。
[since 6.3] void QFontComboBox::setSampleTextForFont(const QString &fontFamily, const QString &sampleText)
为给定的fontFamily 设置,使其在字体名称之后显示sampleText (当下拉列表打开时)。
此函数提供的示例文本优先于通过setSampleTextForSystem()设置的文本。
该函数于 Qt 6.3 中引入。
另请参阅 sampleTextForFont()。
[since 6.3] void QFontComboBox::setSampleTextForSystem(QFontDatabase::WritingSystem writingSystem, const QString &sampleText)
为给定的writingSystem 设置sampleText ,使其在(下拉列表打开时)显示在字体名称之后。
setSampleTextForFont() 提供的示例文本具有优先级。
该函数在 Qt 6.3 中引入。
另请参阅 sampleTextForSystem()。
[override virtual] QSize QFontComboBox::sizeHint() const
重新实现了:QComboBox::sizeHint() const。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.