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

属性

公共函数

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() 可过滤掉某些类型的字体,如不可缩放字体或单行字体。

QFontComboBox 在 Windows Vista 上的屏幕截图

另请参见 QComboBox,QFont,QFontInfo,QFontMetricsQFontDatabase

成员类型文档

枚举 QFontComboBox::FontFilter
flags QFontComboBox::FontFilters

该枚举可用于在字体组合框中仅显示特定类型的字体。

常量说明
QFontComboBox::AllFonts0显示所有字体
QFontComboBox::ScalableFonts0x1显示可缩放字体
QFontComboBox::NonScalableFonts0x2显示不可缩放字体
QFontComboBox::MonospacedFonts0x4显示单行字体
QFontComboBox::ProportionalFonts0x8显示比例字体

FontFilters 类型是QFlags<FontFilter> 的类型定义。它存储 FontFilter 值的 OR 组合。

属性文档

currentFont : QFont

该属性保存当前选择的字体

访问功能:

QFont currentFont() const
void setCurrentFont(const QFont &f)

Notifier 信号:

void currentFontChanged(const QFont &font)

另请参阅 currentIndexcurrentText

fontFilters : FontFilters

该属性用于保存组合框的筛选器

默认情况下,会列出所有字体。

访问功能:

QFontComboBox::FontFilters fontFilters() const
void setFontFilters(QFontComboBox::FontFilters filters)

另请参阅 writingSystem

writingSystem : QFontDatabase::WritingSystem

该属性用于保存作为组合框过滤器的书写系统。

如果scriptQFontDatabase::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)

设置用于显示给定fontFamilyfont (当组合框打开时)。

此函数在 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.