对话框分为模态对话框、非模态对话框。
模态对话框:当前窗口打开时,无法处理其他窗口内容
非模态对话框:当前窗口打开时,可以处理其他窗口内容
一、模态对话框
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog> //对话框的头文件
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->actionnew,&QAction::triggered,this,[=]()
{
QDialog* dialogPointer1 = new QDialog(this);
dialogPointer1->resize(300,200);
dialogPointer1->exec();
});
}
MainWindow::~MainWindow()
{
delete ui;
}
二、非模态对话框
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog> //对话框的头文件
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->actionnew,&QAction::triggered,this,[=]()
{
QDialog* dialogPointer2 = new QDialog(this);
dialogPointer2->resize(500,200);
dialogPointer2->show();
dialogPointer2->setAttribute(Qt::WA_DeleteOnClose); //防止内存泄漏
});
}
MainWindow::~MainWindow()
{
delete ui;
}