一、模态对话框
不可以对其他窗口进行操作,必须先关闭当前对话框才行
//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()<<"非模态对话框弹出了";
这里有个细节就是给他设置属性,关闭的时候析构此组件,不然每点开一次就新建一个,内存会被撑爆。
Qt编程:模态与非模态对话框的使用示例
文章展示了如何在Qt环境中创建和使用模态及非模态对话框。模态对话框阻止用户与其它窗口交互,需先关闭才能操作其他窗口。非模态对话框则允许同时操作多个窗口。在非模态对话框的实例中,强调了设置WA_DeleteOnClose属性以防止内存泄漏的重要性。
2077

被折叠的 条评论
为什么被折叠?



