十八、字体对话框QFontDialog
实现以下功能
创建一个QDialog工程
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include<QPushButton>
#include<QLineEdit>
#include<QGridLayout>
#include<QFontDialog>
QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACE
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog(QWidget *parent = nullptr);
~Dialog();
private:
Ui::Dialog *ui;
QPushButton *fontButton;
QLineEdit *fontEdit;
QGridLayout *gl;
private slots:
void fontFunc();
};
#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::Dialog)
{
ui->setupUi(this);
fontButton=new QPushButton("打开字体选择框");
fontEdit=new QLineEdit("CSDN");
gl=new QGridLayout(this);
gl->addWidget(fontButton,0,0);
gl->addWidget(fontEdit,0,1);
connect(fontButton,&QPushButton::clicked,this,&Dialog::fontFunc);
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::fontFunc()
{
bool ok;
QFont font=QFontDialog::getFont(&ok);
if(ok)
{
fontEdit->setFont(font);
}
}
QFont QFontDialog::getFont(bool *ok, const QFont &initial, QWidget *parent = nullptr, const QString &title = QString(), QFontDialog::FontDialogOptions options = FontDialogOptions()):
执行一个模态字体对话框并返回一个字体。
如果用户单击OK,则返回所选字体。如果用户单击Cancel,则返回初始字体。
对话框是用给定的父类和options中指定的选项构造的。Title显示为对话框的窗口标题,initial显示为最初选择的字体。如果ok参数不为空,则在用户单击ok时将其引用的值设置为true,在用户单击Cancel时将其引用的值设置为false。