Qt 模態(tài)對話框和非模態(tài)對話框.doc

Qt 模態(tài)對話框和非模態(tài)對話框.doc

ID:57690234

大?。?1.00 KB

頁數(shù):2頁

時間:2020-09-01

Qt 模態(tài)對話框和非模態(tài)對話框.doc_第1頁
Qt 模態(tài)對話框和非模態(tài)對話框.doc_第2頁
資源描述:

《Qt 模態(tài)對話框和非模態(tài)對話框.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、詳解Qt模態(tài)對話框和非模態(tài)對話框2011-07-0111:33佚名互聯(lián)網(wǎng)?我要評論(0)?字號:T?

2、?T如果從線程角度來講,模態(tài)對話框?qū)嶋H上是線程阻塞的,也就是子對話框是一個線程,但是在創(chuàng)建這個子線程之后,父窗口就阻塞了;模態(tài)對話框則不是阻塞型的線程模型,父子線程可以并行運行。AD:Qt模態(tài)對話框和非模態(tài)對話框是本文介紹的內(nèi)容,本文認為本篇是一篇很有意思的文章,不多說,我們先來看內(nèi)容。模態(tài)對話框就是指在子對話框彈出時,焦點被強行集中于該子對話框,子對話框不關(guān)閉,用戶將無法操作其他的窗口。非模態(tài)相反,用戶仍

3、然可以操作其他的窗口,包括該子對話框的父對話框。如果從線程角度來講,模態(tài)對話框?qū)嶋H上是線程阻塞的,也就是子對話框是一個線程,但是在創(chuàng)建這個子線程之后,父窗口就阻塞了;模態(tài)對話框則不是阻塞型的線程模型,父子線程可以并行運行。和所有流行的圖形類庫一樣,Qt也提供了創(chuàng)建模態(tài)和非模態(tài)對話框的機制。在Qt中創(chuàng)建模態(tài)對話框,主要用到了QDialog的exec函數(shù):1.SonDialog?dlg(this);?2.int?res?=?dlg.exec();?3.if?(res?==?QDialog::Accepted)?

4、4.{?5.????QMessageBox::information(this,?"INFORMATION",?"You?clicked?OK?button!");?6.}?7.if?(res?==?QDialog::Rejected)?8.{?9.????QMessageBox::information(this,?"INFORMATION",?"You?clicked?CANCEL?button!");?10.}?正如上面代碼所顯示的,可以通過exec函數(shù)的返回值來判斷用戶點擊了哪個按鈕使得模態(tài)對話框退

5、出的,這可以使得我們能夠根據(jù)用戶的不同行為在推出退出模態(tài)對話框之后采取不同的處理方法。在Qt中創(chuàng)建非模態(tài)對話框,主要用到了QDialog的show函數(shù):1.SonDialog?*dlg;?2.dlg?=?new?SonDialog(this);?3.dlg->show();?由上面代碼,細心的讀者可能就會問了,既然new了,如果不delete,那么內(nèi)存不就存在了泄露的問題了嗎?確實如此!所以,我們希望該Qt窗口在退出時自動能夠delete掉自己,因此,我們在SonDialog的構(gòu)造函數(shù)里,添加這樣的一句代碼

6、:1.setAttribute?(Qt::WA_DeleteOnClose);?這樣,我們的SonDialog就能夠在它退出時自動的delete掉自己了,不會再造成內(nèi)存泄漏問題。小結(jié):關(guān)于?Qt模態(tài)對話框和非模態(tài)對話框的內(nèi)容介紹完了,希望本文對你有所幫助!

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。