Qt应用开发(基础篇)——字体选择器 QFontDialog

一、前言

        QFontDialog类继承于QDialog,是一个设计用来选择字体的对话框部件。

        对话框窗口QDialog

Qt应用开发(基础篇)——字体选择器 QFontDialog_第1张图片

         QFontDialog字体选择对话框,设计用来让用户选择某一种字体,一般用于文本编辑窗口、标签显示和一些需要文本输入的场景。你可以直接使用静态函数QFontDialog::getFont()打开对话框,并初始化一些参数,选择完字体之后,根据函数返回值得到QFont封装好的字体属性。

QFontDialog *dia = new QFontDialog(this);
dia->setWindowTitle("my Font dialog");
dia->open(this,SLOT(onColorSelected(const QFont &)));

 或者

bool ok;
QFont font = QFontDialog::getFont(
             &ok, QFont("Helvetica [Cronyx]", 10), this);

Qt应用开发(基础篇)——字体选择器 QFontDialog_第2张图片

 二、QFontDialog

1、currentFont

        该属性表示当前选择的字体。

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

2、options

        该属性表示外观的一些显示策略,默认没有策略。如果需要的话,需要在显示之前设置此策略。

QFontDialog::FontDialogOptions options() const
void setOptions(QFontDialog::FontDialogOptions options)
QFontDialog::FontDialogOption 描述
NoButtons 不显示OK和Cancel按钮
DontUseNativeDialog 使用Qt标准界面,不根据系统改变
ScalableFonts 显示可缩放字体
NonScalableFonts 显示不可缩放字体
MonospacedFonts 显示等宽字体
ProportionalFonts 显示比例字体
Qt应用开发(基础篇)——字体选择器 QFontDialog_第3张图片 linux

        设置DontUseNativeDialog之后会恢复成标准对话框。

Qt应用开发(基础篇)——字体选择器 QFontDialog_第4张图片

3、公共函数

1)open

        打开对话框,并且连接fontSelected信号绑定的槽,当对话框关闭的时候,这个信号槽连接会被断开。

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

示例:打开的同时绑定fontSelected信号的作用槽函数,控制台输出选择的字体信息。

private slots:
    void onFontSelected(const QFont &font);
void MainWindow::onFontSelected(const QFont &font)
{
    qDebug()<
QFontDialog *dia = new QFontDialog(this);
dia->setWindowTitle("my Font dialog");
dia->open(this,SLOT(onFontSelected(const QFont &)));

2)setOption

        单独设置某一项显示策略的使能,参考上文options。

void setOption(QFontDialog::FontDialogOption option, bool on = true)

3)testOption

        返回某一项显示策略的使能,对应上文setOption。

 bool testOption(QFontDialog::FontDialogOption option) const

4)selectedFont

        返回当前选择的字体。

QFont selectedFont() const

4、静态公共函数

1)getFont

        使用模式状态打开对话框,根据ok值判断是否选择成功,传入默认字体initial,也可以传入对话框显示策略options

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)

5、信号

1)currentFontChanged

        用户选择完字体后触发。

void currentFontChanged(const QFont &font)

2)fontSelected

        用户在对话框选择字体的时候触发。

void fontSelected(const QFont &font)

你可能感兴趣的:(Qt5从入门到精通-应用开发,qt,上位机,c++,PC)