Qt 模态窗口和非模态窗口
1、模态窗口(系统会挂起,不可以其他操作)
QDialog dlg(this); dlg.exec(); qDebug() << "模态窗口";

关闭窗口后会写弹出日志
2、非模板窗口(系统不会挂起,系统会系统走流程)
QDialog *dlg =new QDialog(this); dlg->show(); qDebug() << "非模态窗口";

弹出窗口会直接写出日志
完整的代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDialog"
#include "QDebug"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//模态窗口
connect(ui->btn1,&QPushButton::clicked,[=](){
QDialog dlg(this);
dlg.resize(400,200);
dlg.exec();
qDebug() << "模态窗口";
});
//非模态窗口
connect(ui->btn2,&QPushButton::clicked,[=](){
QDialog *dlg =new QDialog(this);
dlg->resize(400,200);
dlg->setAttribute(Qt::WA_DeleteOnClose);
dlg->show();
qDebug() << "非模态窗口";
});
}
MainWindow::~MainWindow()
{
delete ui;
}其他说明:委托事件关闭后会是否窗口
dlg->setAttribute(Qt::WA_DeleteOnClose);