99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Qt parent 參數(shù)

2020-10-28 09:57 更新

Qt 學(xué)習(xí)之路(tip): parent 參數(shù)

這是一篇很簡(jiǎn)單的文章,僅僅是用來(lái)說(shuō)明一下一個(gè)參數(shù)的作用,因此我把它寫成了 tip,而不是接下來(lái)的17.

程序?qū)懙亩嗔耍銜?huì)發(fā)現(xiàn)幾乎所有的Qt類的構(gòu)造函數(shù)都會(huì)有一個(gè) parent 參數(shù)。這個(gè)參數(shù)通常是QObject 或者是 QWidget 類型的。很多情況下它都會(huì)有一個(gè)初始值0,因此,即便你不去給它賦值也沒(méi)有絲毫的問(wèn)題。于是,稍微偷懶一下,就會(huì)不自覺的忽略了這個(gè)參數(shù)。那么,這個(gè)參數(shù)到底是干什么用的呢?

其實(shí),這個(gè)參數(shù)有很多用處。就像它的名字一樣,這個(gè)參數(shù)指定了組件的父組件。對(duì)于一個(gè)對(duì)話框來(lái)說(shuō),對(duì)話框一般是不作為頂層容器出現(xiàn)的,因此在任務(wù)欄上一般是沒(méi)有對(duì)話框的位置的。怎么指定這個(gè)對(duì)話框不是頂層容器呢?有父組件的組件不就不是頂層容器了嗎?因此,只要你指定對(duì)話框的 parent 屬性,任務(wù)欄就不會(huì)出現(xiàn)它的身影。當(dāng)然,如果你不指定,這個(gè)對(duì)話框就成為頂層容器了,任務(wù)欄會(huì)給它留個(gè)位置的——利用這個(gè)特性,就可以實(shí)現(xiàn)特殊對(duì)話框可以在任務(wù)欄出現(xiàn)的效果,比如“關(guān)于”對(duì)話框的出現(xiàn)。

另外比較通用,也是很重要的作用是,parent 參數(shù)指明了組件的父組件,這樣,當(dāng)父組件 delete 時(shí),Qt 可以保證所有子組件——也就是 parent 指針指向這個(gè)組件的所有組件——都會(huì)被正確的 delete掉。這是 Qt 能夠幫助我們管理一部分內(nèi)存的原因所在。Qt 是通過(guò)遍歷 parent 屬性來(lái)防止了這一部分內(nèi)存泄漏的。因此,必要情況下還是不要忘記設(shè)置這個(gè) parent 屬性。當(dāng)然,如果你不聲明這個(gè)屬性,當(dāng)整個(gè)程序關(guān)閉時(shí),操作系統(tǒng)會(huì)回收內(nèi)存——因此我們所說(shuō)的內(nèi)存泄漏一般是指我們自己寫的應(yīng)用程序的內(nèi)部,而不會(huì)影響到整個(gè)操作系統(tǒng)——當(dāng)然,如果你實(shí)現(xiàn)太可惡,操作系統(tǒng)也會(huì)受不了自動(dòng)關(guān)掉你的程序的:-)

本文出自 “豆子空間” 博客,請(qǐng)務(wù)必保留此出處 http://devbean.blog.51cto.com/448512/194031

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)