自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解 Qt 模態(tài)對(duì)話框和非模態(tài)對(duì)話框

移動(dòng)開發(fā)
如果從線程角度來講,模態(tài)對(duì)話框?qū)嶋H上是線程阻塞的,也就是子對(duì)話框是一個(gè)線程,但是在創(chuàng)建這個(gè)子線程之后,父窗口就阻塞了;模態(tài)對(duì)話框則不是阻塞型的線程模型,父子線程可以并行運(yùn)行。

Qt 模態(tài)對(duì)話框和非模態(tài)對(duì)話框 是本文介紹的內(nèi)容,本文認(rèn)為本篇是一篇很有意思的文章,不多說,我們先來看內(nèi)容。

模態(tài)對(duì)話框就是指在子對(duì)話框彈出時(shí),焦點(diǎn)被強(qiáng)行集中于該子對(duì)話框,子對(duì)話框不關(guān)閉,用戶將無(wú)法操作其他的窗口。非模態(tài)相反,用戶仍然可以操作其他的窗口,包括該子對(duì)話框的父對(duì)話框。

如果從線程角度來講,模態(tài)對(duì)話框?qū)嶋H上是線程阻塞的,也就是子對(duì)話框是一個(gè)線程,但是在創(chuàng)建這個(gè)子線程之后,父窗口就阻塞了;模態(tài)對(duì)話框則不是阻塞型的線程模型,父子線程可以并行運(yùn)行。

和所有流行的圖形類庫(kù)一樣,Qt也提供了創(chuàng)建模態(tài)非模態(tài)對(duì)話框的機(jī)制。

在Qt中創(chuàng)建模態(tài)對(duì)話框,主要用到了QDialog的exec函數(shù):

  1. SonDialog dlg(this);  
  2. int res = dlg.exec();  
  3. if (res == QDialog::Accepted)  
  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!");  

正如上面代碼所顯示的,可以通過exec函數(shù)的返回值來判斷用戶點(diǎn)擊了哪個(gè)按鈕使得模態(tài)對(duì)話框退出的,這可以使得我們能夠根據(jù)用戶的不同行為在推出退出模態(tài)對(duì)話框之后采取不同的處理方法。
在Qt中創(chuàng)建非模態(tài)對(duì)話框,主要用到了QDialog的show函數(shù):

  1. SonDialog *dlg;  
  2. dlg = new SonDialog(this);  
  3. dlg->show(); 

由上面代碼,細(xì)心的讀者可能就會(huì)問了,既然new了,如果不delete,那么內(nèi)存不就存在了泄露的問題了嗎?確實(shí)如此!所以,我們希望該Qt窗口在退出時(shí)自動(dòng)能夠delete掉自己,因此,我們?cè)赟onDialog的構(gòu)造函數(shù)里,添加這樣的一句代碼:

  1. setAttribute (Qt::WA_DeleteOnClose); 

這樣,我們的SonDialog就能夠在它退出時(shí)自動(dòng)的delete掉自己了,不會(huì)再造成內(nèi)存泄漏問題。

小結(jié):關(guān)于 Qt 模態(tài)對(duì)話框和非模態(tài)對(duì)話框 的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-12-28 14:32:31

WPF窗體對(duì)話框

2011-07-21 15:50:42

jQuery Mobi頁(yè)面對(duì)話框

2009-12-28 13:47:35

WPF對(duì)話框

2009-12-11 15:35:50

PHP彈出對(duì)話框

2010-01-28 16:55:26

Android對(duì)話框

2010-01-11 09:33:32

VB.NET對(duì)話框調(diào)用

2009-12-29 15:24:48

WPF對(duì)話框

2011-11-23 09:47:36

Winform

2011-05-20 16:49:21

VB.NET

2011-07-22 15:32:53

iPhone 按鈕 對(duì)話框

2010-01-22 16:27:19

VB.NET關(guān)于對(duì)話框

2011-06-02 10:37:02

Android 對(duì)話框

2012-12-03 10:47:54

WebJQuery控件

2023-12-17 13:05:01

模型訓(xùn)練

2022-03-02 15:47:57

Dialog組件UI設(shè)計(jì)鴻蒙

2021-07-11 07:34:23

Windows 11操作系統(tǒng)微軟

2011-05-31 10:26:37

Android 對(duì)話框

2023-07-19 14:05:37

2021-01-28 14:34:35

鴻蒙HarmonyOS應(yīng)用開發(fā)

2009-10-20 14:05:42

VB.NET路徑
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)