【Qt筆記】QDialog--模態和非模態

按照運行對話框時是否還能夠和該程序的其餘窗口進行交互,將對話框常分爲兩類:模態(modal)和非模態(modeless)。less

模態對話框

模態對話框就是沒有關閉它以前,不能與同一應用程序的其餘窗口進行交互。函數

建立模態對話框--1:this

QDialog dialog(this);
dialog.exec();

執行這個代碼後,先彈出這個對話框,可是原來的窗口並無出來,關閉這個對話框後,原來的對話框才彈出來。spa

建立模態對話框--2:code

QDialog *dialog = new QDialog(this);
dialog->setModal(true);
dialog->show();

執行這段代碼後,對話框和窗口都出來了,這是由於調用完show()函數後會當即將控制權交給調用者,因此程序能夠執行下去,彈出窗口。而exec()函數不一樣,它只有當對話框被關閉時才返回。內存

非模態對話框

非模態對話框能夠與同一個應用程序的其餘窗口進行交互。class

QDialog *dialog = new QDialog(this);
dialog->show();

使用new運算髮開闢了內存空間。對話框和窗口相對是獨立的。model

相關文章
相關標籤/搜索