本文是学习哔哩哔哩斧头帮帮主QT教程的学习笔记,图片和代码来自于网络,如有侵权请联系删除。
当创建的对象父窗口是QObject或者是QObject派生下来的类,此对象会放到对象树上,当程序执行完毕,树上的内容会从下往上依次释放。
继续使用上一节所编写的项目,选中项目名称,然后点鼠标右键,选择添加新文件
点击choose
输入自定义类名MyPushButton,因为没有QPushButton这个父类可选 ,所以我们选择QWidget,点击下一步,完成
就可以生成相应的cpp和.h文件
切换到mypushbutton.h中,应该是这样的
进行如下修改
切换到mypushbutton.cpp中,进行如下修改,加上一个析构函数,qDebug()和C++中的cout作用差不多
之后切换到mywidget中,添加自定义按钮头文件
添加如下代码并运行
在x掉窗口以后输出
这里显示的是先输出父类的,再输出子类的,和我们想的是不是不太一样,在C++中我们的认识是先析构掉子类,再析构父类
其实这里实质上也是一样的,只不过它先是调用了父类的析构函数,但并没真正析构释放掉这个对象,析构的顺序还是从子类到父类。
构造顺序自上而下,析构顺序自下而上