QFontDialog Class
QFontDialog 类提供了一个用于选择字体的对话窗口部件。更多
Header: | #include <QFontDialog> |
CMake.QFontDialog | 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 和标准对话框示例。
成员类型文档
枚举 QFontDialog::FontDialogOption
flags QFontDialog::FontDialogOptions
该枚举指定了影响字体对话框外观的各种选项。
例如,它允许指定应显示的字体类型。如果没有指定,则将列出所有可用字体。
请注意,某些平台(如 Mac)可能不支持字体过滤选项。非本地对话框(用于 Windows 或 Linux)始终支持这些选项。
常数 | 值 | 说明 |
---|---|---|
QFontDialog::NoButtons | 0x00000001 | 不显示OK 和Cancel 按钮。(适用于 "实时对话框")。 |
QFontDialog::DontUseNativeDialog | 0x00000002 | 在 Mac 上使用 Qt 的标准字体对话框,而不是苹果的本地字体面板。 |
QFontDialog::ScalableFonts | 0x00000004 | 显示可缩放字体 |
QFontDialog::NonScalableFonts | 0x00000008 | 显示不可缩放字体 |
QFontDialog::MonospacedFonts | 0x00000010 | 显示单行字体 |
QFontDialog::ProportionalFonts | 0x00000020 | 显示比例字体 |
FontDialogOptions 类型是QFlags<FontDialogOption> 的类型定义。它存储了 FontDialogOption 值的 OR 组合。
另请参阅 options,setOption() 和testOption() 。
属性文档
currentFont : QFont
此属性保存对话框的当前字体。
访问功能:
QFont | currentFont() const |
void | setCurrentFont(const QFont &font) |
Notifier 信号:
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 XML 默认字体。
对话框使用给定的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。
© 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.