一、模态对话框
不可以对其他窗口进行操作,必须先关闭当前对话框才行
//actionnew是个button的名字
connect(ui->actionnew,&QAction::triggered,[=](){
//对话框 有两种
//模态对话框(不可以对其他窗口进行操作,必须先关闭当前对话框才行)
//非模态对话框(可以操作其他窗口,无须关闭当前)
QDialog dlg(this);
dlg.exec();
qDebug() <<"模态对话框弹出了";
});
二、非模态对话框
可以操作其他窗口,无须关闭当前。
//非模态对话框
QDialog *dlg2=new QDialog(this);
dlg2->resize(200,100);
dlg2->show();
dlg2->setAttribute(Qt::WA_DeleteOnClose); //设置属性,关闭的时候就析构此组件,以免内存泄漏
qDebug()<<"非模态对话框弹出了";
这里有个细节就是给他设置属性,关闭的时候析构此组件,不然每点开一次就新建一个,内存会被撑爆。