一、描述
QFontDialog()是继承自QDialog()的一个子类,用来选择给定的字体(包括字体、字号、样式等)
二、构造函数
QFontDialog()的声明很简单,可以直接调用
m_fontDialog = new QFontDialog(this);
设置默认字体
QFont *mfont = new QFont();
mfont->setFamily("仿宋");
mfont->setPointSize(12);
m_fontDialog = new QFontDialog(*mfont,this);
三、对话框的使用
在这里我们借用一个按钮来启动字体对话框,然后获得对话框中选择的字体。
这里有个知识点:我们在打开对话框的时候,用open()是可以传递一个槽函数的
用法非常简单,直接上效果图和源码
源码:
mainwindow.c
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QFont>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QFont *mfont = new QFont();
mfont->setFamily("仿宋");
mfont->setPointSize(12);
m_fontDialog = new QFontDialog(*mfont,this);
this->resize(800,600);
QPushButton *m_bt = new QPushButton(this);
m_bt->setGeometry(100,20,80,30);
m_bt->setText("选择字体");
m_edit = new QTextEdit(this);
m_edit->setGeometry(20,100,200,200);
m_edit->append("字体对话框测试");
connect(m_bt,&QPushButton::clicked,this,&MainWindow::slot_btclicked);
connect(m_fontDialog,&QFontDialog::fontSelected,this,&MainWindow::slot_fontselect);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::slot_btclicked()
{
m_fontDialog->show();
if(m_fontDialog->exec()){
QFont m_font= m_fontDialog->currentFont();
m_edit->append(m_font.toString());
m_edit->setFont(m_font);
}
}
void MainWindow::slot_fontselect()
{
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QFontDialog>
#include <QTextEdit>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void slot_btclicked();
void slot_fontselect();
private:
Ui::MainWindow *ui;
QFontDialog *m_fontDialog;
QTextEdit *m_edit;
};
#endif // MAINWINDOW_H