QT 模态和非模态对话框
基本概念:
模态对话框: 不允许对其它窗口进行操作,阻塞
非模态对话框: 运行对其它窗口进行操作
由于非模态时其它窗口也可以进行操作,需要创建在堆区,使用new
头文件: #include <QDialog>
代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qpushbutton.h"
#include "QDebug"
#include <QDialog>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->actionch_2,&QAction::triggered,[=](){
QDialog dlg(this);//模态对话框
dlg.resize(500,300);
dlg.exec();
qDebug("模态对话框\n");
QDialog* dlg2=new QDialog(this);//非模态对话框,创建在堆区
dlg2->resize(500,300);
dlg2->show();
qDebug("非模态对话框\n");
});
}
MainWindow::~MainWindow()
{
delete ui;
}