模态窗口和非模态窗口

通俗的讲模态窗口就是其关闭前,不能对上一层的窗口进行操作。而非模态是在其本身窗口未关闭的情况下可以对其他窗口进行操作!

模态是指当窗口被打开后,焦点始终停留在新打开的窗口上,窗口关闭的时候,上一层窗口才获得焦点,而非模态正好相反。

1 在Qt的模态中,主要用到QDialog的exec()方法:

  1. QDialog dlg(this);
  2. int res = dlg.exec();
  3. if (res == QDialog::Accepted)
  4. {
  5.     QMessageBox::information(this, "INFORMATION", "You clicked OK button!");
  6. }
  7. if (res == QDialog::Rejected)
  8. {
  9.     QMessageBox::information(this, "INFORMATION", "You clicked CANCEL button!");
  10. }

  通过exec()的返回值判断用户触发的是哪个按钮。

2 在非模态中,主要用到了QDialog中的show()方法:

    1. QDialog *dlg = new SonDialog(this);
    2. dlg->show()
posted @ 2014-04-09 17:34  soft_myl  阅读(357)  评论(0)    收藏  举报