模態(modal):指該對話方塊視窗會阻塞其他視窗。
非模態(modeless):指該對話方塊視窗不阻塞任何其他視窗。
模態的種類由列舉型別enum qt::windowmodality來定義,分為
qt::nonmodal:非模態,即不阻塞任何其他視窗;
qt::windowmodal:視窗模態,即阻塞其父視窗和祖父視窗,以及其父視窗和祖父視窗的所有同級視窗;
三、模態設定函式
void qdialog::setmodal(bool modal)
void qwidget::setwindowmodality(qt::windowmodality windowmodality)
qdialog dialog(this);
// 1、視窗將會一閃而過,因為函式中建立的物件,在函式結束後,就會釋放消失。
dialog.show();
// 2、模態對話方塊視窗,程式將會一直在此處執行,直到對話方塊關閉。
dialog.exec();
qdialog *dialog = new qdialog(this);
// 1、非模態對話方塊
dialog->show();
// 2、模態對話方塊視窗,程式將會一直在此處執行,直到對話方塊關閉。
dialog->exec();
// 3、模態對話方塊視窗,程式會繼續向下執行。
dialog->setmodal(true);
dialog->show();
// 4、模態對話方塊視窗,程式會繼續向下執行。
dialog->show();
QT 模態對話方塊與非模態對話方塊筆記
模態與非模態的定義 在qt裡建立對話方塊需包含標頭檔案 qdialog 建立非模態對話方塊可以用三種方法,常用的是在呼叫時new 第二種是提前宣告其為類中成員函式 第三種是全域性宣告,這種很少用。非模態對話方塊在呼叫時new,需注意空間的釋放問題。使用setattribute屬性事件接收qt wa ...
Qt模態對話方塊和非模態對話方塊
1 模態對話方塊 1 要想使乙個對話方塊成為模態對話方塊,只需要條用它的exec 函式。qdialog dialog this dialog.exec 2 show 函式建立模態對話方塊,呼叫函式setmodal true 函式即可。qdialog dialog new qdialog this d...
模態對話方塊與非模態對話方塊
1.對話方塊分類 按工作方式不同,可將對話方塊分成兩類 模態對話方塊 modal 在關閉模態對話方塊之前,程式不能進行其他工作 如一般的 開啟檔案 對話方塊 非模態對話方塊 modeless 非模態對話方塊開啟後,程式仍然能夠進行其他工作 如一般的 查詢與替換 對話方塊 2.對話方塊建立 模態對話方...