简介
QDiloag是一个人机交互标准对话框基类,它有很多子类:QMessageBox,QFileDialog,QColorDialog,QInputDialog,QFontDialog等等;
它有三种模式:
- 模态
- 非模态
- 半模态
模态对话框
主界面阻塞,exec()之后代码不会执行,直到关闭模态对话框
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
QDialog *pDialog = new QDialog(&w);
pDialog->setWindowTitle("模态对话框");
pDialog->exec();//阻塞
w.setWindowTitle("主界面");//该代码等待执行
return a.exec();
}
非模态对话框
主界面不阻塞,show()之后的代码会立刻执行
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
QDialog *pDialog = new QDialog(&w);
pDialog->setWindowTitle("非模态对话框");
pDialog->show();
w.setWindowTitle("主界面");//立即执行
return a.exec();
}
半模态对话框
主界面阻塞,show()之后代码会立即执行
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
QDialog *pDialog = new QDialog(&w);
pDialog->setWindowTitle("半模态对话框");
pDialog->setModal(true);
pDialog->show();
w.setWindowTitle("主界面");//立即执行
return a.exec();
}