在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ Qt 學習之路(tip): parent 參數(shù)
Qt 容器和算法拾遺
自定義 model 之一
反走樣
Hello, world!
Qt 容器類之關(guān)聯(lián)存儲容器
QStringListModel
拖放技術(shù)之一
狀態(tài)欄
QTreeWidget
拖放技術(shù)之二
通用算法
event()
Qt 學習之路(18): Qt 標準對話框之 QInputDialog
Qt 容器類之遍歷器和隱式數(shù)據(jù)共享
QListWidget
Meta-Object 系統(tǒng)
事件接收與忽略
Qt 學習之路(tip): parent 參數(shù)
Qt 標準對話框之 QColorDialog
QPainter(續(xù))
國際化(下)
漸變填充
自定義委托
創(chuàng)建 shared library
model-view 架構(gòu)
Graphics View Framework
自定義拖放數(shù)據(jù)對象
QSortFilterProxyModel
國際化(上)
組件布局
自定義 Model 之三
事件過濾器
QDirModel
Hello, world!(續(xù))
Qt 標準對話框之 QFileDialog
自定義 model 之二
深入了解信號槽
坐標變換
剪貼板操作
QTableWidget
QByteArray 和 QVariant
創(chuàng)建一個對話框(下)
Qt 學習之路(32): 一個簡易畫板的實現(xiàn)(Graphics View)
文本文件讀寫
自定義事件
編寫跨平臺的程序
MainWindow
初探信號槽
Qt 學習之路(17): Qt 標準對話框之 QMessageBox
繪圖設備
菜單和工具條(續(xù))
二進制文件讀寫
QString
事件(event)
菜單和工具條
QPainter
Qt 容器類之順序存儲容器
進程間交互
API 文檔的使用
創(chuàng)建一個對話框(上)
一個簡易畫板的實現(xiàn)(QWidget)

Qt 學習之路(tip): parent 參數(shù)

這是一篇很簡單的文章,僅僅是用來說明一下一個參數(shù)的作用,因此我把它寫成了 tip,而不是接下來的17.

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

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

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

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

上一篇:繪圖設備