Qt 模態和非模態視窗的建立與關閉
阿新 • • 發佈:2019-01-28
首先應該明確的是,不僅僅Qt中包含模態視窗和非模態視窗,任何一個視窗介面開發的工具都應該具備此項功能。
模態視窗最簡單的理解是在模態視窗開啟之後,使用者只能與這個視窗進行互動,而在其關閉之前不能與其他視窗進行互動;而非模態視窗與之相反,雖然它被打開了,但是使用者仍然能對其他視窗進行互動。
下面來看看建立模態和非模態視窗的示例:(ResDialog是新視窗的類)
一. 模態:
1.指標的方法:
- ResDialog*resdlg=newResDialog(this);
- this->hide(); //把之前的視窗隱藏
- resdlg->setModal(true);
- resdlg->exec();
- ResDialogresdlg;
- resdlg.setModal(true) //設定為模態
- resdlg.exec();
- ResDialog*resdlg=newResDialog(this);
- this->hide(); //把之前的視窗隱藏
- resdlg->show(); //
- ResDialogresdlg; //不用指標
- resdlg.setModal(false);
- resdlg.show();
- ResDialogresdlg;
- int res= resdlg.exec();
- if (res ==QDialog::Accepted){
- QMessageBox::about(NULL, "提示", 您點選了OK按鈕!");
- }
- if (res ==QDialog::Rejected){
- QMessageBox::about(NULL,"提示", 您點選了關閉按鈕!");
- //新增關閉時你要的行為
- }