mybutton 类用于说明垃圾回收机制。
//主文件 main.cpp
#include "mywidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.show();
return a.exec();
}
//Mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
~MyWidget();
};
#endif // MYWIDGET_H
`
//Mywidget.cpp
#include "mywidget.h"
#include <QPushButton>
#include "mybutton.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
/*对于父窗口(主窗口),从左上角向右递增*/
move(100,100);
resize(800,600);
QPushButton *b1 = new QPushButton(this);
b1->move(0,0);
b1->setText("^_^");
b1->resize(100,100);
QPushButton *b2 = new QPushButton(b1);
b2->move(10,10);
b2->setText("@_@");
//指定父对象后,子对象如果是动态分配的new,不需要手动delete,系统自动垃圾回收
//以上必修直接或者间接继承于QObject
MyButton *b3 = new MyButton(this);
b3->setText("123");
}
MyWidget::~MyWidget()
{
}
//mybutton.h
#ifndef MYBUTTON_H
#define MYBUTTON_H
#include <QPushButton>
class MyButton : public QPushButton
{
Q_OBJECT
public:
explicit MyButton(QWidget *parent = nullptr);
~MyButton();
signals:
public slots:
};
#endif // MYBUTTON_H
//Mybutton.cpp
#include "mybutton.h"
#include <QDebug>
MyButton::MyButton(QWidget *parent) : QPushButton(parent)
{
}
MyButton::~MyButton(){
qDebug()<<"按钮被析构啦~~~";
}