`
izuoyan
  • 浏览: 9221856 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Qt学习之路(tip): parent参数

阅读更多
版权声明: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/214166
这是一篇很简单的文章,仅仅是用来说明一下一个参数的作用,因此我把它写成了tip,而不是接下来的17.
程序写的多了,你会发现几乎所有的Qt类的构造函数都会有一个parent参数。这个参数通常是QObject* 或者是 QWidget* 类型的。很多情况下它都会有一个初始值0,因此,即便你不去给它复制也没有丝毫的问题。于是,稍微偷懒一下,就会不自觉的忽略了这个参数。那么,这个参数 到底是干什么用的呢?
其实,这个参数有很多用处。就像它的名字一样,这个参数指定了组件的父组件。对于一个对话框来说,对话框一般是不作为顶层容器出现的,因此在任 务栏上一般是没有对话框的位置的。怎么指定这个对话框不是顶层容器呢?有父组件的组件不就不是顶层容器了吗?因此,只要你指定对话框的parent属性, 任务栏就不会出现它的身影。当然,如果你不指定,这个对话框就成为顶层容器了,任务栏会给它留个位置的——利用这个特性,就可以实现特殊对话框可以在任务 栏出现的效果,比如“关于”对话框的出现。
另外比较通用,也是很重要的作用是,parent参数指明了组件的父组件,这样,当父组件delete时,Qt可以保证所有子组件——也就是 parent指针指向这个组件的所有组件——都会被正确的delete掉。这是Qt能够帮助我们管理一部分内存的原因所在。Qt是通过遍历parent属 性来防止了这一部分内存泄漏的。因此,必要情况下还是不要忘记设置这个parent属性。当然,如果你不声明这个属性,当整个程序关闭时,操作系统会回收 内存——因此我们所说的内存泄漏一般是指我们自己写的应用程序的内部,而不会影响到整个操作系统——当然,如果你实现太可恶,操作系统也会受不了自动关掉 你的程序的:-)

本文出自 “豆子空间 ” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/214166

分享到:
评论

相关推荐

    现代OpenGL+Qt学习笔记之二:程序框架

    现代OpenGL+Qt学习笔记之二:程序框架http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77917697源码。

    Qt学习之路(作者:豆子)

    ### Qt学习之路:深入了解Qt与GUI编程 #### 引言:Qt的魅力与独特之处 Qt作为一款著名的跨平台C++库,不仅仅局限于图形用户界面(GUI)的开发,它提供了广泛的功能,包括网络通信、数据库访问、图形渲染等,旨在提供...

    QT学习之路2-2020整理版(更新到94章)(pdf)

    《QT学习之路2-2020整理版》是一份详尽的QT开发教程,涵盖了从基础到进阶的多个方面。这份资料基于豆子大佬的博客内容进行整理,不仅包含原有的79章,还增加了豆子在2016年3月11日后更新的15章内容,共计94章,旨在...

    现代OpenGL+Qt学习笔记之三:显示一个彩色三角形

    现代OpenGL+Qt学习笔记之三:显示一个彩色三角形http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77927876源码。

    现代OpenGL+Qt学习笔记之十二:模拟聚光灯

    使用现代OpenGL+Qt实现的模拟聚光灯的效果。详见博文现代OpenGL+Qt学习笔记之十二:模拟聚光灯http://blog.csdn.net/chaojiwudixiaofeixia/article/details/78220271

    现代OpenGL+Qt学习笔记之四:使用Uniform变量实现对模型的旋转

    现代OpenGL+Qt学习笔记之四:使用Uniform变量实现对模型的旋转http://blog.csdn.net/chaojiwudixiaofeixia/article/details/77944140源码

    qt学习之路

    Qt学习之路 Qt是一个功能强大且流行的跨平台应用程序开发框架,提供了丰富的类库和工具,可以轻松地创建桌面应用程序、移动应用程序和嵌入式系统。下面是Qt学习之路的详细知识点: 一、Hello Qt! Hello Qt!是Qt中...

    QT学习之路2+QT5教程+范例

    QT学习之路2+QT5教程+范例这个资料集合,显然是为了帮助初学者快速掌握QT开发技能,通过实例来深化理解。 首先,让我们关注《QT5教程 完整版.pdf》。这份文档应该详尽地介绍了QT5的各个方面,包括QT5的基础概念、...

    《Qt 学习之路 2》

    Qt是一个广泛使用的C++应用程序框架,它...总体来说,《Qt学习之路2》作为一本入门教程,不仅为读者提供了Qt编程的基础知识,还根据Qt的发展现状,适时地加入了Qt5的新特性和改进点,使之成为一本全面而实用的教程。

    Qt学习之路2带目标可注释版pdf

    **Qt学习之路2带目标可注释版pdf** Qt是一个跨平台的应用程序开发框架,主要应用于桌面和移动设备,由The Qt Company维护,并且广泛支持C++和QML语言。这个资源,"Qt学习之路2带目标可注释版pdf",显然是一本专注于...

    Qt实现的自定义tip

    通过阅读和学习这些代码,我们可以深入理解Qt自定义控件的原理,以及如何利用Qt的事件机制和绘图功能实现特定的UI效果。同时,这也是一个很好的实践案例,展示了如何在实际项目中扩展和定制Qt的基本功能。 总之,Qt...

    Qt 学习之路2.pdf

    ### Qt 学习之路2.pdf 知识点详解 #### 1. 序言与背景 **《Qt 学习之路2》** 是由作者豆子撰写的一系列关于 Qt 的学习教程,旨在更新并扩展其之前的教程内容。该教程最初在 2009 年发布,基于书籍《C++ GUI ...

    Qt 学习之路 2

    Qt 学习之路 2 Qt 学习之路 2 是一系列关于 Qt 框架的学习教程,旨在帮助读者快速掌握 Qt 的基础知识和应用技术。该系列文章分为多个部分,涵盖了 Qt 的基本概念、GUI 组件、常用技术、数据库、网络等方面的内容。...

    QT学习入门及开发实例

    3. **QT信号与槽机制**:这是QT的核心特性之一,用于对象间的通信,使代码更易于维护和扩展。 4. **QT布局管理**:学习如何使用QLayout来自动调整控件的排列和大小,以适应不同屏幕尺寸。 5. **QT控件使用**:讲解...

    QT学习网站daquanQT学习网站

    "QT学习网站QT学习网站QT学习网站QT学习网站"的描述可能是重复强调这个压缩包的用途,即它是QT学习的资料合集。 在QT学习的过程中,通常会涉及以下几个核心知识点: 1. **QT基础**:理解QT的基本概念,包括信号与...

    Qt学习之路---尤其适用Qt初学者

    ### Qt学习之路——尤其适用Qt初学者 #### 前言 Qt是一个强大的跨平台应用程序开发框架,广泛应用于桌面和嵌入式系统。对于初学者而言,掌握Qt的基础及其核心特性至关重要。本书《Qt学习之路》是专为Qt初学者准备的...

    QT学习之路2

    QT学习之路2是针对Qt框架的一次全面更新和深化,主要针对初学者和有一定基础的开发者,旨在提供一套系统化的学习资源。Qt是一款强大的跨平台应用程序开发框架,它支持多种操作系统,包括Windows、Linux、macOS、...

    QT5开发学习资料和实战项目.rar

    1:Qt5的介绍 2:Qt5开发及实例 3:Qt5布局管理 4:Qt5基本对话框 5:Qt5主窗体 6:Qt5图形与图画 7:Qt5图形视图框架 8:Qt5模型/视图结构 9:Qt5文件及磁盘处理 10:Qt5网络与通信 11:Qt5事件处理 12:Qt5多线程...

    Qt学习之路之Qt从入门到精通

    2. **Qt学习之路**:这一部分是针对初学者的入门内容,建议初学者从这里开始。 3. **Qt深入编程**:这部分内容深入探讨Qt框架的各种高级特性,适合已经比较熟悉Qt的读者进行深入研究。 ### Qt编程基础 在深入学习...

Global site tag (gtag.js) - Google Analytics