目录
[1. 对话框的介绍](#1. 对话框的介绍)
[2. QDialog](#2. QDialog)
[2.1 demo1点击按钮弹出一个对话框](#2.1 demo1点击按钮弹出一个对话框)
[2.2 demo2自定义对话框](#2.2 demo2自定义对话框)
[2.3 demo2使用UI文件创建对话框](#2.3 demo2使用UI文件创建对话框)
[2.4 demo3模态与非模态的区别](#2.4 demo3模态与非模态的区别)
[3. 复合对话框](#3. 复合对话框)
[4. QMessageBox](#4. QMessageBox)
[4.1 demo1手动创建一个warning对话框](#4.1 demo1手动创建一个warning对话框)
[4.2 demo2使用QMessageBox中的静态函数快速创建对话框](#4.2 demo2使用QMessageBox中的静态函数快速创建对话框)
[5. QColorDialog](#5. QColorDialog)
[5.1 常⽤⽅法介绍:](#5.1 常⽤⽅法介绍:)
[5.2 demo1使用QColorDialog更改按钮的背景色](#5.2 demo1使用QColorDialog更改按钮的背景色)
[6. QFileDialog](#6. QFileDialog)
[6.1 常用方法介绍:](#6.1 常用方法介绍:)
[6.2 demo1常用方法的使用](#6.2 demo1常用方法的使用)
[7. QFontDialog](#7. QFontDialog)
[7.1 demo1通过字体选择器来修改标签的字体](#7.1 demo1通过字体选择器来修改标签的字体)
1. 对话框的介绍
对话框是 GUI 程序中不可或缺的组成部分。⼀些不适合在主窗⼝实现的功能组件可以设置在对话框中。对话框通常是⼀个顶层窗⼝,出现在程序最上层,⽤于实现短期任务或者简洁的⽤⼾交互。Qt常⽤的内置对话框有:QFiledialog (⽂件对话框)、QColorDialog (颜⾊对话框)QFontDialog (字体对话框)、QInputDialog (输⼊对话框)和 QMessageBox(消息框) 。
2. QDialog
Qt中使用QDialog作为对话框弹出与用户交互.
2.1 demo1点击按钮弹出一个对话框
1)初始化控件

2)弹出对话框逻辑

3)执行程序

2.2 demo2自定义对话框
1)创建一个类继承于QDialog

2)自定义对话框中的界面

3)使用按钮弹出自定义的对话框

4)执行程序

2.3 demo2使用UI文件创建对话框
1)创建对话框UI文件

2)设置UI文件

3)弹出对话框

3)执行程序

2.4 demo3模态与非模态的区别
Qt中的对话框又分为模态对话框与非模态对话框.
模态对话框:当前子窗口不作出决定关闭时无法操作父窗口,常用于一些必须由用户完成的操作.
非模态对话框:子窗口是否存在不影响父窗口的操作,上面的对话框就是基于非模态的.
对话框如果使用show显示就是非模态的,使用exec显示就是模态的.
1)创建模态与非模态对话框

2)执行程序

3. 复合对话框
Qt提供了多种可复⽤的对话框类型,即 Qt 标准对话框。Qt 标准对话框全部继承于 QDialog类。常⽤标准对话框如下:

4. QMessageBox
消息对话框是应⽤程序中最常⽤的界⾯元素。消息对话框主要⽤于为⽤⼾提⽰重要信息,强制⽤⼾进⾏选择操作。 QMessageBox类 中定义了静态成员函数,可以直接调⽤创建不同⻛格的消息对话框,其中包括:

4.1 demo1手动创建一个warning对话框
1)弹出对话框

2)执行程序

4.2 demo2使用QMessageBox中的静态函数快速创建对话框
1)创建QMessageBox

2)执行程序

5. QColorDialog
Qt中还有一个QColorDialog可以弹出一个调色板来让用户进行颜色选择.
5.1 常⽤⽅法介绍:
1、QColorDialog (QWidget *parent = nullptr)//创建对象的同时设置⽗对象
2、 QColorDialog(const QColor &initial, QWidget *parent = nullptr)//创建对象的同时通过QColor对象设置默认颜⾊和⽗对象
3、 void setCurrentColor(const QColor &color)//设置当前颜⾊对话框
4、QColor currentColor() const//获取当前颜⾊对话框
5、QColor getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(), QColorDialog::ColorDialogOptions options = ColorDialogOptions()) //打开颜⾊ 选择对话框,并返回⼀个QColor对象参数说明: initial:设置默认颜⾊ parent:设置⽗对象 title:设置对话框标题 options:设置选项
6、void open(QObject *receiver, const char *member) //打开颜⾊对话框
5.2 demo1使用QColorDialog更改按钮的背景色
1)弹出对话框

2)执行程序

6. QFileDialog
通过QFileDialog来选择一个文件,可以获取到该文件的路径.
6.1 常用方法介绍:
1、打开⽂件(⼀次只能打开⼀个⽂件) QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
2、打开多个⽂件(⼀次可以打开多个⽂件)QStringList getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
3、 保存⽂件 QString getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
6.2 demo1常用方法的使用
1)编写逻辑代码

2)执行程序

7. QFontDialog
Qt中可以通过QFontDialog来获取一个字体选择器.
7.1 demo1通过字体选择器来修改标签的字体
1)获取选中的字体及修改字体

2)执行程序
