QFontDialog 类

QFontDialog 类提供了一个用于选择字体的对话框小部件。 更多...

头文件 #include <QFontDialog>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QDialog

公共类型

枚举FontDialogOption { NoButtons, DontUseNativeDialog, ScalableFonts, NonScalableFonts, MonospacedFonts, ProportionalFonts }
标志FontDialogOptions

属性

公共函数

QFontDialog(QWidget *parent = nullptr)
QFontDialog(const QFont &initial, QWidget *parent = nullptr)
QFontcurrentFont() const
voidopen(QObject *receiver, const char *member)
QFontDialog::FontDialogOptionsoptions() const
QFontselectedFont() const
voidsetCurrentFont(const QFont &font)
voidsetOption(QFontDialog::FontDialogOption option, bool on = true)
voidsetOptions(QFontDialog::FontDialogOptions options)
booltestOption(QFontDialog::FontDialogOption option) const

重写公共函数

virtual voidsetVisible(bool visible) override

信号

voidcurrentFontChanged(const QFont &font)
voidfontSelected(const QFont &font)

静态公共成员

QFontgetFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), QFontDialog::FontDialogOptions options = FontDialogOptions())
QFontgetFont(bool *ok, QWidget *parent = nullptr)

重写受保护函数

virtual voidchangeEvent(QEvent *e) override
virtual void完成(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,如果他们点击“取消”,则使用原始字体。

A font dialog in the Fusion widget style.

另请参阅QFontQFontInfoQFontMetricsQColorDialogQFileDialog标准对话框示例

成员类型文档

枚举 QFontDialog::FontDialogOption
标志 QFontDialog::FontDialogOptions

此枚举指定影响字体对话框外观的选项。

例如,它可以指定应显示哪种类型的字体。如果没有指定任何类型,则将列出所有可用的字体。

请注意,字体过滤选项可能在某些平台上不受支持(例如Mac)。它们总是由非原生对话框(在Windows或Linux中使用)支持。

常量描述
QFontDialog::NoButtons0x00000001不显示确定取消按钮。(对于“实时对话框”很有用。)
QFontDialog::DontUseNativeDialog0x00000002在Mac上使用Qt的标准字体对话框,而不是Apple的原生字体面板。
QFontDialog::ScalableFonts0x00000004显示可缩放字体
QFontDialog::NonScalableFonts0x00000008显示不可缩放字体
QFontDialog::MonospacedFonts0x00000010显示等宽字体
QFontDialog::ProportionalFonts0x00000020显示比例字体

The FontDialogOptions type is a typedef for QFlags<FontDialogOption>. It stores an OR combination of FontDialogOption values.

另请参阅optionssetOption()和testOption

属性文档

currentFont : QFont

此属性包含对话框的当前字体。

访问函数

QFontcurrentFont() const
voidsetCurrentFont(const QFont &font)

通知信号

voidcurrentFontChanged(const QFont &font)

options : FontDialogOptions

此属性包含影响对话框外观的选项。

默认情况下,所有选项都是禁用的。

设置选项应在显示对话框之前进行。设置在对话框可见时的选项不能保证立即影响对话框(取决于选项和平台)。

访问函数

QFontDialog::FontDialogOptionsoptions() const
voidsetOptions(QFontDialog::FontDialogOptions options)

另请参阅setOption()和testOption

成员函数文档

[显式] QFontDialog::QFontDialog(QWidget *parent = nullptr)

构建一个标准字体对话框。

使用setCurrentFont()来设置初始字体属性。

parent参数被传递到QDialog构造函数。

另请参阅 getFont()。

[显式] QFontDialog::QFontDialog(const QFont &initial, QWidget *parent = nullptr)

构建具有给定 父对象 和指定 初始 字体的标准字体对话框。

[重写虚拟保护] void QFontDialog::changeEvent(QEvent *e)

重写: QWidget::changeEvent(QEvent *event)。

QFont QFontDialog::currentFont() const

返回当前字体。

注意:当前字体属性的获取函数。

另请参阅 setCurrentFont() 和 selectedFont

[信号] void QFontDialog::currentFontChanged(const QFont &font)

当前字体更换时发出此信号。新的字体以 font 指定。

在用户选择字体时发出信号。最终选定的字体可能与当前选定的字体不同。

注意:currentFont 属性的通知信号。

另请参阅 currentFontfontSelectedselectedFont

[重写虚拟保护] void QFontDialog::done(int result)

重写: QDialog::done(int r)。

关闭对话框并设置其结果代码为 result。如果使用 exec() 显示此对话框,则 done() 会使局部事件循环结束,并使 exec() 返回 result

另请参阅 QDialog::done

[信号] void QFontDialog::fontSelected(const QFont &font)

选中字体时发出此信号。选中的字体以 font 指定。

仅当用户选择要使用的最终字体时才会发出此信号。在用户在字体对话框中更改当前字体时不会发出。

另请参阅 selectedFontcurrentFontChangedcurrentFont

[静态] QFont QFontDialog::getFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), QFontDialog::FontDialogOptions options = FontDialogOptions())

执行模态字体对话框并返回一个字体。

如果用户点击确定,将返回所选字体。如果用户点击取消,将返回初始字体。

该对话框使用指定的选项所述选项构建。 标题显示为对话框的窗口标题,而初始是默认选择的字体。如果ok参数非空,则在用户点击确定时,其所指值设为true,在用户点击取消时设为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()));

在此示例中,如果用户点击确定,将使用所选的字体;如果点击取消,则使用原始字体。

警告:不要在对话框执行期间删除。如果想这样做,您应该使用某种QFontDialog构造函数自己创建对话框。

[静态] QFont QFontDialog::getFont(bool *ok, QWidget *parent = nullptr)

这是一个重载函数。

执行模态字体对话框并返回一个字体。

如果用户点击确定,则返回所选字体。如果用户点击取消,则返回Qt默认字体。

使用给定的构建对话框。如果ok参数非空,则在用户点击确定时,其所指值设为true,在用户点击取消时设为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()
}

警告:不要在对话框执行期间删除。如果想这样做,您应该使用某种QFontDialog构造函数自己创建对话框。

void QFontDialog::open(QObject *receiver, const char *member)

打开对话框并将其fontSelected()信号连接到receivermember指定的槽。

在对话框关闭时,将信号从槽断开连接。

QFont QFontDialog::selectedFont() const

返回用户通过点击确定或等效按钮所选的字体。

注意:此字体不一定与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

另请参见:optionstestOption

[覆盖虚函数] void QFontDialog::setVisible(bool visible)

重实现了:QDialog::setVisible(bool visible)。

bool QFontDialog::testOption(QFontDialog::FontDialogOption option) const

如果给定的 选项 被启用,则返回 true;否则,返回 false。

另请参阅 选项setOption()。

© 2024 The Qt Company Ltd。此处包含的文档贡献是其各自所有者的版权。提供的文档是根据由自由软件基金会发布的 GNU Free Documentation License 版本 1.3 的条款许可的。Qt 和相应的商标是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。