系列文章目录
QT学习笔记--对象树
前言
QT对象树是QT拥有的一个机制,减少了我们在GUI界面开发的工作量。
一、对象树机制介绍
QT Object Trees & Ownership文档原文介绍:
QObjects organize themselves in object trees. When you create a QObject with another object as parent, it's added to the parent's children() list, and is deleted when the parent is. It turns out that this approach fits the needs of GUI objects very well. For example, a QShortcut (keyboard shortcut) is a child of the relevant window, so when the user closes that window, the shortcut is deleted too.
根据上述文档内容,我们可知:在QT中,当对象A已对象B为父亲时,对象B的children表会添加上对象A。当对象B结束时,对象A也会结束。这就是QT的对象树机制。
二、检验QT对象树机制
1.添加一个Mclass类(以Widget为基类)
1.在mclass.cpp文件中创建一个析构函数:
QMclass::~QMclass(){
QDebug<<"delete myclass";
}
2.在widget.cpp文件中创建一个mclass对象
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QMclass *myclass = new QMclass(this);
}
3.在运行该程序,当我们关闭窗口时,控制台会输出delete myclass,由此我们可以验证QT的对象树机制。