一. 对象模型(对象树)
1-1. 对象树的概念
对象树是一种数据结构,用于在内存中组织对象之间的关系。在对象树中,每个对象都可以有一个父对象,子对象会自动添加到父对象的 children()列表中。当父对象析构时,其子对象也会被析构。
这种机制在 GUI 程序设计中非常有用,例如,当删除一个按钮时,与其相关的快捷键也会被自动删除。
在 Qt 中,QObject 是对象树的根节点,其子类对象是子节点。创建 QObject 对象时,可以提供一个父对象指针,该对象会自动添加到父对象的 children()列表中。
当你创造一个Q0bject对象时,会看到Q0bject的构建函数收到一个Q0bject指针作为参数,这个参数就是parent,也就是父对象指针。这相当于,在创建00bject对象时,可以提供一个其父对象,我们创建的这个00biect.对象会自动添加到其父对象的children()列表。
当父对象析构的时侯,这个列表中的所有对象也会被析构。(注意,这里的父对象并不是继承意义上的父类)
1-2. 对象树的流程图
1-3. 实现对象树
1-3-1. 添加新的文件
后面就不用选择它已经自动选择完了,最后点击完成以后,在文件中后出现以下这些图
1-3-2. 创立完以后需要修改文件的地方
继承的父类由QWidget变成QPushButton。
前面的QWidget *parent中的QWidge就不用改变,它只是传一个指针进来,只需要改变后面的父类。
1-4. 构造与析构
1-4-1. 在.h文件中添加析构
1-4-2. 在.cpp文件中添加构造
1-4-3. 在mywidget.cpp文件中进行编辑
第一步先引用我写的按钮
第二步创建按钮的对象
1-4-4. 确认析构的顺序
而它的打印顺序是相反的,所以是从下到上来看
二. 坐标系
坐标系的原点在左上角。
X以右为正方向。
Y以下为正方向。