Qt学习 Day2

一. 对象模型(对象树)

在 Qt中创建对象的时候会提供一个 Parent 对象指针,下面来解释这个 parent
到底是干什么的。

QObject是以对象树的形式组织起来的。

当你创建一个 QObject 对象时,会看到 QObject 的构造函数接收一个QObject,指针作为参数,这个参数就是 parent,也就是父对象指针。

这相当于,在创建QObject 对象时,可以提供一个其父对象,我们创建的这个 QObiect,对象会自动添加到其父对象的children()列表。

当父对象析构的时候,这个列表中的所有对象也会被析构。(注意,这里的父对象并不是继承意义上的父类!)

这种机制在 GUI 程序设计中相当有用。例如,一个按钮有一个QShortcut(快捷键)对象作为其子对象。当我们删除按钮的时候,这个快捷键理应被删除。这是合理的。在这里插入图片描述
QWidget,是能够在屏幕上显示的一切组件的父类。

QWidget 继承自 QObject,因此也继承了这种对象树关系。一个孩子自动地成为父组件的一个子组件。因此,它会显示在父组件的坐标系统中,被父组件的边界剪裁。例如,当用户关闭一个对话框的时候,应用程序将其删除,那么,我们希望属于这个对话框的按钮、图标等应该一起被删除。事实就是如此,因为这些都是对话框的子组件。

当然,我们也可以自己删除子对象,它们会自动从其父对象列表中删除。比如,当我们删除了一个工具栏时,其所在的主窗口会自动将该工具栏从其子对象列表中删除,并且自动调整屏幕显示。


二. 验证对象树

2.1 添加新文件
在这里插入图片描述
2.2 添加文件名,点击完成即可
在这里插入图片描述
在这里插入图片描述
2.3 更改对象类
在这里插入图片描述
在这里插入图片描述
2.4 写析构代码
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.5 打印、确认析构顺序
在这里插入图片描述
在这里插入图片描述
而打印出来是反的,但是析构是从子类先释放的
在这里插入图片描述


坐标系

在这里插入图片描述
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值