QFontComboBox Class
QFontComboBox widget 是一个组合框,可让用户选择字体系列。更多
头文件: | #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 以及用于粗体和斜体的两个QToolButtons 一起用于工具栏中。
当用户选择新字体时,除了currentIndexChanged() 信号外,还会发出currentFontChanged() 信号。
调用setWritingSystem() 可让 QFontComboBox 只显示支持给定书写系统的字体,调用setFontFilters() 可过滤掉某些类型的字体,如不可缩放字体或单行字体。
另请参见 QComboBox,QFont,QFontInfo,QFontMetrics 和QFontDatabase 。
成员类型文档
枚举 QFontComboBox::FontFilter
flags QFontComboBox::FontFilters
该枚举可用于在字体组合框中仅显示特定类型的字体。
常量 | 值 | 说明 |
---|---|---|
QFontComboBox::AllFonts | 0 | 显示所有字体 |
QFontComboBox::ScalableFonts | 0x1 | 显示可缩放字体 |
QFontComboBox::NonScalableFonts | 0x2 | 显示不可缩放字体 |
QFontComboBox::MonospacedFonts | 0x4 | 显示单行字体 |
QFontComboBox::ProportionalFonts | 0x8 | 显示比例字体 |
FontFilters 类型是QFlags<FontFilter> 的类型定义。它存储 FontFilter 值的 OR 组合。
属性文档
currentFont : QFont
该属性保存当前选择的字体
访问功能:
QFont | currentFont() const |
void | setCurrentFont(const QFont &f) |
Notifier 信号:
void | currentFontChanged(const QFont &font) |
另请参阅 currentIndex 和currentText 。
fontFilters : FontFilters
该属性用于保存组合框的筛选器
默认情况下,会列出所有字体。
访问功能:
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.
© 2025 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.