Qt模态和非模态对话框简述
QDialog类是所有对话框窗口的基类。按照运行对话框是否可以和此程序 的其他界面进行交互,分为两类:模态、非模态
非模态
QDialog *dialog = new QDialog(this);
dialog->show();
模态
- 使用
exec()显示的对话框,此种方式放到main()函数中则直接显示窗口,如果放到其他窗口的构造函数中则其他窗口不显示,只显示此dialog。
QDialog dialog(this);
dialog.exec();
- 设置
setModal(true),此种方式如果放到其他窗口的构造函数中,则原窗口照样显示,只是此dialog前置显示,且无法点击原窗口。
QDialog *dialog = new QDialog(this);
dialog->setModal(true);
dialog->show();
与 setModal()函数类似,setWindowModality()函数也可以设置模态,其参数有三种选择
Qt::NonModal:不阻塞任何窗口,就是非模态Qt::WindowModal:阻塞它的父窗口、所有祖先窗口以及它们的子窗口Qt::ApplicationModal:阻塞整个应用程序的所有窗口
注:setMOdal()函数默认设置的是Qt::ApplicationModal
本文介绍了Qt中对话框的两种类型:模态和非模态。模态对话框阻止用户与程序的其他部分交互,而非模态对话框允许用户在对话框打开时继续与其他界面元素互动。文中详细解释了如何通过QDialog类实现这两种对话框。
2332

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



