目录
  1. 一、模态和非模态对话框
  2. 1.1 介绍
  3. 1.2 代码创建
  4. 二、标准对话框

一、模态和非模态对话框

上一节中,我们实现了搭建一个简单的窗口,并且添加了如菜单栏、工具栏等项目。

一、模态和非模态对话框

但现在的窗口只是徒有其形,其内部的功能却一个都没有实现。

这节我们实现点击一个按钮,弹出一个对话框的功能。

1.1 介绍

对话框分为两种

  • 模态对话框:弹出后,可以对其他窗口进行操作
  • 非模态对话框:弹出后,无法点击除了对话框以外的其他区域(代码阻塞)

1.2 代码创建

引入头文件

#include <QDialog>`

编写对话框

connect(ui->actionNew,&QAction::triggered,[=](){
//模态对话框 (不可以对其他窗口进行操作) 非模态对话框 (可以对其他窗口进行操作)
//模态创建 阻塞
    QDialog dlg(this);
    dlg.resize(200,100);
    dlg.exec();
    qDebug() << "模态对话框弹出了";   //需要引入#include <QDebug>


//非模态对话框
    QDialog * dlg2 = new QDialog (this);
    dlg2->resize(200,100);
    dlg2->show();
    dlg2->setAttribute(Qt::WA_DeleteOnClose);
    qDebug() << "非模态对话框弹出了";
}

二、标准对话框

Qt提供了很多内置对话框:

Qt内置对话框功能
QColorDialog选择颜色
QFileDialog选择文件或者目录
QFontDialog选择字体
QInputDialog允许用户输入一个值,并将其值返回
QMessageBox模态对话框,用于显示信息、询问问题等
QPageSetupDialog为打印机提供纸张相关的选项
QPrintDialog打印机配置
QPrintPreviewDialog打印预览
QProgressDialog显示操作过程

以下以消息对话框为例。