Qt學習 模態與非模態對話方塊

2021-08-17 09:30:14 字數 797 閱讀 5463

模態(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.對話方塊建立 模態對話方...