模态对话框:其他对话框无法操作,除非此对话框关闭。非模态对话框,无限制。前者用exec()显示,后者show()显示

新建,基类选择QMainWindow,ui取消勾选

8、模态对话框、非模态对话框_模态 8、模态对话框、非模态对话框_数据_02 8、模态对话框、非模态对话框_#include_03

#include "mainwindow.h"
//头文件中引入
//#include<QMenuBar>
//#include<QMenu>
//#include<QDialog>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(400,200);
    QMenuBar *mBar=menuBar();
    QMenu *menu=mBar->addMenu("对话框");
    QAction *p1=menu->addAction("模态对话框");
    QAction *p2=menu->addAction("非模态对话框");
    connect(p1,&QAction::triggered,
            [](){
        QDialog *dlg=new QDialog();
        dlg->setWindowTitle("模态对话框");
        dlg->exec();//显示,并等待用户操作。

    });
    connect(p2,&QAction::triggered,
            [](){
        QDialog *dlg=new QDialog();
        dlg->setWindowTitle("非模态对话框");
        dlg->show();
    });
}

MainWindow::~MainWindow()
{

}