添加网站图标,遂宁商城网站建设,建网站后如何维护,企业网站建设的申请Tips: QT通过对象树机制#xff0c;能够自动、有效的组织和管理继承自QObject的Qt对象#xff0c;不需要用户手动回收资源#xff0c;系统自动调用析构函数。 验证对象树功能#xff1a;
新建C文件 继承自QPushButton#xff0c;但没有QPushButton#xff0c;但有其父类…Tips: QT通过对象树机制能够自动、有效的组织和管理继承自QObject的Qt对象不需要用户手动回收资源系统自动调用析构函数。 验证对象树功能
新建C文件 继承自QPushButton但没有QPushButton但有其父类QWidget则选择Qwidget 修改继承和声明析构函数 关闭窗口时先打印MyWidget的析构再打印MyPushButton的析构
这是因为释放对象树时从根结点开始寻找只是执行析构函数释放堆区资源但是没有释放对象找一下有没有子类如果有则先释放子类资源子类释放顺序与父类一样。真正的释放过程是从下往上子类到父类只是析构的调用顺序是从上往下父类到子类 //MyPushButton.h
#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H
//修改继承由QWidget修改为QPushButton
#include QPushButtonclass MyPushButton : public QPushButton
{Q_OBJECT
public:explicit MyPushButton(QWidget *parent 0);~MyPushButton();
signals:public slots:
};#endif // MYPUSHBUTTON_H
//MyPushButton.cpp
#include mypushbutton.h
#include QDebugMyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{}MyPushButton::~MyPushButton(){qDebug()MyPushButton析构调用;
}
//MyWidget.cpp
#include mywidget.h
//包含头文件
#include QDebug
#include QPushButton
#include mypushbutton.hMyWidget::MyWidget(QWidget *parent): QWidget(parent)
{//按钮控件QPushButton *btn new QPushButton;//显示按钮btn-show(); //以顶层的方式显示//设置父窗口让按钮依赖于当前窗口上btn-setParent(this); //this指向当前窗口//设置btn内容btn-setText(你好);//创建第二个按钮QPushButton *btn2 new QPushButton(hello,this);//重设按钮大小btn2-resize(200,50);//设置窗口尺寸this-resize(600,400);//移动按钮btn-move(0,0);btn2-move(150,0);//固定窗口尺寸(设置后窗口不可收缩)this-setFixedSize(600,400);//设置窗口标题this-setWindowTitle(这是窗口标题);//自定义自己创建的按钮捕获析构函数MyPushButton *myBtn new MyPushButton;myBtn-setParent(this);myBtn-move(0,100);myBtn-setText(自定义按钮);}MyWidget::~MyWidget()
{qDebug()MyWidget析构函数调用;
}