QT 模態對話方塊與非模態對話方塊筆記

2021-07-23 16:46:51 字數 934 閱讀 4236

模態與非模態的定義:

在qt裡建立對話方塊需包含標頭檔案< qdialog>,建立非模態對話方塊可以用三種方法,常用的是在呼叫時new;第二種是提前宣告其為類中成員函式;第三種是全域性宣告,這種很少用。

非模態對話方塊在呼叫時new,需注意空間的釋放問題。

使用setattribute屬性事件接收qt::wa_deleteonclose 事件,讓qwidget在觸發關閉事件時,自動delete。

setattribute說明:

void qwidget::setattribute(qt::widgetattribute attribute, bool on = true)

其返回值空,第二參為true時,接受第一參設定函式屬性,false則清除事件屬性。第二參不填則預設ture.

wa_deleteonclose說明:

qt::wa_deleteonclose屬於enum qt::widgetattribute中的55。

其作用是接受關閉事件時,delete qwidget.

//**示例

qmenubar *mbar = menubar();//建立選單欄

qmenu *pdlg = mbar->addmenu("menu");//建立選單

//模態對話方塊

qaction *p1 = pdlg->addaction("modal dialog");

connect(p1,&qaction::triggered,[=]()

);//非模態對話方塊

qaction *p2 = pdlg->addaction("non-modal dialog");

connect(p2,&qaction::triggered,[=]()

);

模態對話方塊與非模態對話方塊

1.對話方塊分類 按工作方式不同,可將對話方塊分成兩類 模態對話方塊 modal 在關閉模態對話方塊之前,程式不能進行其他工作 如一般的 開啟檔案 對話方塊 非模態對話方塊 modeless 非模態對話方塊開啟後,程式仍然能夠進行其他工作 如一般的 查詢與替換 對話方塊 2.對話方塊建立 模態對話方...

模態對話方塊與非模態對話方塊

建立對話方塊 case id dialog text dialogbox hinst,makeintresource idd textbox hwnd,textset break 建立模態對話方塊 case id dialog tcolor dhwnd createdialog hinst,make...

Qt模態對話方塊和非模態對話方塊

1 模態對話方塊 1 要想使乙個對話方塊成為模態對話方塊,只需要條用它的exec 函式。qdialog dialog this dialog.exec 2 show 函式建立模態對話方塊,呼叫函式setmodal true 函式即可。qdialog dialog new qdialog this d...