模态窗口和非模态窗口
通俗的讲模态窗口就是其关闭前,不能对上一层的窗口进行操作。而非模态是在其本身窗口未关闭的情况下可以对其他窗口进行操作!
模态是指当窗口被打开后,焦点始终停留在新打开的窗口上,窗口关闭的时候,上一层窗口才获得焦点,而非模态正好相反。
1 在Qt的模态中,主要用到QDialog的exec()方法:
- QDialog dlg(this);
- int res = dlg.exec();
- if (res == QDialog::Accepted)
- {
- QMessageBox::information(this, "INFORMATION", "You clicked OK button!");
- }
- if (res == QDialog::Rejected)
- {
- QMessageBox::information(this, "INFORMATION", "You clicked CANCEL button!");
- }
通过exec()的返回值判断用户触发的是哪个按钮。
2 在非模态中,主要用到了QDialog中的show()方法:
- QDialog *dlg = new SonDialog(this);
- dlg->show();

浙公网安备 33010602011771号