QFontDialog Class
QFontDialog 类提供了一个用于选择字体的对话框控件。更多内容...
| 头文件: | #include <QFontDialog> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 继承自: | QDialog |
- 所有成员列表,包括继承的成员
- QFontDialog 属于“标准对话框”类。
公共类型
| enum | FontDialogOption { NoButtons, DontUseNativeDialog, ScalableFonts, NonScalableFonts, MonospacedFonts, ProportionalFonts } |
| flags | FontDialogOptions |
属性
- currentFont : QFont
- options : FontDialogOptions
公共函数
| QFontDialog(QWidget *parent = nullptr) | |
| QFontDialog(const QFont &initial, QWidget *parent = nullptr) | |
| QFont | currentFont() const |
| void | open(QObject *receiver, const char *member) |
| QFontDialog::FontDialogOptions | options() const |
| QFont | selectedFont() const |
| void | setCurrentFont(const QFont &font) |
| void | setOption(QFontDialog::FontDialogOption option, bool on = true) |
| void | setOptions(QFontDialog::FontDialogOptions options) |
| bool | testOption(QFontDialog::FontDialogOption option) const |
重新实现的公共函数
| virtual void | setVisible(bool visible) override |
信号
| void | currentFontChanged(const QFont &font) |
| void | fontSelected(const QFont &font) |
静态公共成员
| QFont | getFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), QFontDialog::FontDialogOptions options = FontDialogOptions()) |
| QFont | getFont(bool *ok, QWidget *parent = nullptr) |
重新实现的受保护函数
| virtual void | changeEvent(QEvent *e) override |
| virtual void | done(int result) override |
详细说明
通过静态函数getFont()之一创建字体对话框。
示例:
bool ok;
QFont font = QFontDialog::getFont(
&ok, QFont("Helvetica [Cronyx]", 10), this);
if (ok) {
// the user clicked OK and font is set to the font the user selected
} else {
// the user canceled the dialog; font is set to the initial
// value, in this case Helvetica [Cronyx], 10
}该对话框也可用于直接设置控件的字体:
myWidget.setFont(QFontDialog::getFont(0, myWidget.font()));如果用户点击“确定”,则 myWidget 将使用其所选的字体;如果点击“取消”,则使用原始字体。

另请参阅 QFont 、QFontInfo 、QFontMetrics 、QColorDialog 、QFileDialog 以及“标准对话框示例”。
成员类型文档
enum QFontDialog::FontDialogOption
flags QFontDialog::FontDialogOptions
此枚举定义了影响字体对话框外观和风格的各种选项。
例如,它允许指定应显示哪种类型的字体。如果未指定任何选项,则会列出所有可用的字体。
请注意,某些平台(例如 Mac)可能不支持字体筛选选项。非原生对话框(用于 Windows 或 Linux)始终支持这些选项。
| 常量 | 值 | 描述 |
|---|---|---|
QFontDialog::NoButtons | 0x00000001 | 不显示“OK ”和“Cancel ”按钮。(适用于“实时对话框”。) |
QFontDialog::DontUseNativeDialog | 0x00000002 | 在 Mac 上使用 Qt 的标准字体对话框,而非 Apple 的原生字体面板。 |
QFontDialog::ScalableFonts | 0x00000004 | 显示可缩放字体 |
QFontDialog::NonScalableFonts | 0x00000008 | 显示不可缩放字体 |
QFontDialog::MonospacedFonts | 0x00000010 | 显示等宽字体 |
QFontDialog::ProportionalFonts | 0x00000020 | 显示比例字体 |
FontDialogOptions 类型是QFlags<FontDialogOption> 的 typedef。它存储了 FontDialogOption 值的按“或”运算组合。
另请参阅 options 、setOption() 和testOption()。
属性文档
currentFont : QFont
该属性保存对话框的当前字体。
访问函数:
| QFont | currentFont() const |
| void | setCurrentFont(const QFont &font) |
通知信号:
| void | currentFontChanged(const QFont &font) |
options : FontDialogOptions
该属性包含影响对话框外观和风格的各种选项
默认情况下,所有选项均处于禁用状态。
应在显示对话框之前设置这些选项。在对话框可见时进行设置,不能保证会立即对对话框产生影响(具体取决于选项和平台)。
访问函数:
| QFontDialog::FontDialogOptions | options() const |
| void | setOptions(QFontDialog::FontDialogOptions options) |
另请参阅 setOption() 和testOption()。
成员函数文档
[explicit] QFontDialog::QFontDialog(QWidget *parent = nullptr)
构建一个标准字体对话框。
使用setCurrentFont()来设置初始字体属性。
parent 参数将传递给QDialog 构造函数。
另请参阅 getFont()。
[explicit] QFontDialog::QFontDialog(const QFont &initial, QWidget *parent = nullptr)
根据给定的parent 和指定的initial 字体,构建一个标准字体对话框。
[override virtual protected] void QFontDialog::changeEvent(QEvent *e)
重写了:QWidget::changeEvent(QEvent *event)。
QFont QFontDialog::currentFont() const
返回当前字体。
注意: 这是 currentFont 属性的获取 函数。
另请参阅 setCurrentFont() 和selectedFont()。
[signal] void QFontDialog::currentFontChanged(const QFont &font)
当当前字体发生变化时,会发出此信号。新字体在font 中指定。
当用户正在选择字体时,会发出该信号。最终选定的字体可能与当前选中的字体不同。
注意: 这是属性currentFont的通知 信号。
另请参阅 currentFont 、fontSelected() 以及selectedFont()。
[override virtual protected] void QFontDialog::done(int result)
重写了:QDialog::done(int r)。
关闭对话框,并将结果代码设置为result 。如果该对话框是通过exec()显示的,则done()会导致本地事件循环结束,并使exec()返回result 。
另请参阅 QDialog::done()。
[signal] void QFontDialog::fontSelected(const QFont &font)
当选定一种字体时,会发出此信号。所选字体在font 中指定。
该信号仅在用户选定最终要使用的字体时发出。当用户在字体对话框中更改当前字体时,该信号不会发出。
另请参阅 selectedFont()、currentFontChanged() 以及currentFont 。
[static] QFont QFontDialog::getFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), QFontDialog::FontDialogOptions options = FontDialogOptions())
调用一个模态字体对话框,并返回一种字体。
如果用户点击OK ,则返回所选字体;如果用户点击Cancel ,则返回initial 字体。
该对话框根据给定的parent 以及在options 中指定的选项进行构建。title 将作为对话框的窗口标题显示,而initial 则是初始选中的字体。如果ok 参数不为空,则当用户点击OK 时,该参数所引用的值将设置为true;当用户点击Cancel 时,则设置为false。
示例:
bool ok;
QFont font = QFontDialog::getFont(&ok, QFont("Times", 12), this);
if (ok) {
// font is set to the font the user selected
} else {
// the user canceled the dialog; font is set to the initial
// value, in this case Times, 12.
}该对话框也可用于直接设置控件的字体:
myWidget.setFont(QFontDialog::getFont(0, myWidget.font()));在此示例中,如果用户点击“确定”,将使用其选择的字体;如果点击“取消”,则使用原始字体。
[static] QFont QFontDialog::getFont(bool *ok, QWidget *parent = nullptr)
调用一个模态字体对话框,并返回一种字体。
如果用户点击OK ,则返回所选字体。如果用户点击Cancel ,则返回Qt默认字体。
对话框将根据给定的parent 进行构建。如果ok 参数不为空,则当用户点击OK 时,该参数所引用的值将设置为true;当用户点击Cancel 时,则设置为false。
示例:
bool ok;
QFont font = QFontDialog::getFont(&ok, this);
if (ok) {
// font is set to the font the user selected
} else {
// the user canceled the dialog; font is set to the default
// application font, QApplication::font()
}这是一个重载函数。
void QFontDialog::open(QObject *receiver, const char *member)
打开对话框,并将该对话框的fontSelected()信号连接到由receiver 和member 指定的槽。
当对话框关闭时,该信号将与该槽的连接解除。
QFont QFontDialog::selectedFont() const
返回用户通过单击“OK ”或等效按钮所选定的字体。
注意:该 字体并不总是与currentFont 属性所保存的字体相同,因为用户在最终确定要使用的字体之前,可能会选择不同的字体。
void QFontDialog::setCurrentFont(const QFont &font)
将“QFontDialog ”中突出显示的字体设置为指定的font 。
注意: 这是属性currentFont 的设置 函数。
另请参阅 currentFont() 和selectedFont()。
void QFontDialog::setOption(QFontDialog::FontDialogOption option, bool on = true)
如果on 为true,则启用指定的option ;否则,清除指定的option 。
另请参阅 options 和testOption()。
[override virtual] void QFontDialog::setVisible(bool visible)
重写了:QDialog::setVisible (bool visible)。
bool QFontDialog::testOption(QFontDialog::FontDialogOption option) const
如果给定的option 已启用,则返回true ;否则,返回false。
© 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.