对话框
对话框分类
运行对话框时,是否还可以和该程序的其他窗口进行交互。分为:模态对话框 和 非模态对话框
- 模态对话框
QDialog *dialog;
dialog.exec();
没有关闭它之前,不能与同一个应用程序的其他窗口进行交互。 - 非模态对话框
QDialog *dialog = new QDialog(this);
dialog->show();
既可以与它交互,也可以同同一程序中的其他窗口进行交互。
前面加dialog->setModal(true);也可以建立模态对话框。
另:调用完show()会立即将控制权交给调用者,程序可以继续往下执行。调用exex()只用当关闭时才会返回。
setModal()有三种类型,
Qt::NoModal不阻塞任何窗口
Qt::WindowModal阻塞它的父窗口,所有祖先窗口及他们的子窗口
Qt::ApplicationModal阻塞整个应用程序窗口