QT从入门到实战完整版 P20

发布时间 2023-07-18 18:20:11作者: 高尔赛凡尔娟

#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->actionNew,&QAction::triggered,[=](){
        //对话框分类:
        //模态对话框(不可以对其他窗口进行操作) 非模态对话框(可以对其他窗口进行操作)
        //模态创建 阻塞功能
    //    QDialog dlg(this);           //?栈内存
    //    dlg.resize(200,100);
    //    dlg.exec();

    //    qDebug()<<"模态对话框弹出了";

        //非模态对话框
        QDialog * dlg2=new QDialog(this);//放置在了堆内存中(不会一闪而过)
        dlg2->resize(400,300);
        dlg2->show(); //为了避免持续的创建删除影响整个内存的使用
        dlg2->setAttribute(Qt::WA_DeleteOnClose); //55号 属性
        qDebug()<<"非模态对话框弹出了";
    });
}

MainWindow::~MainWindow()
{
    delete ui;
}