1、添加类
创建工程时添加了以QWidget为基类的类,叫lywidget,有cpp和h文件。
现在要再添加一个类,作为自己的按钮类lyqpushbutton
.
- 工程上右键,添加新文件,选择C++ Class。
- 输入类名【写一个自己的按钮类】,按钮的类是QPushButton,但列表中没有,先选ta的父类QWidget,等会修改。
- 修改要继承的类为QPushButton,头文件有两处,源文件有一处。
2、代码
2.1、自己按钮类的头文件
#ifndef LYQPUSHBUTTON_H
#define LYQPUSHBUTTON_H
#include <QPushButton>
class lyqpushbutton : public QPushButton
{
Q_OBJECT
public:
explicit lyqpushbutton(QWidget *parent = nullptr);
~lyqpushbutton(); //析构函数
signals:
public slots:
};
#endif // LYQPUSHBUTTON_H
2.2、自己按钮类的源文件
#include "lyqpushbutton.h"
#include <QDebug>
lyqpushbutton::lyqpushbutton(QWidget *parent) : QPushButton(parent)
{
qDebug() << "我的按钮类,构造函数";
}
lyqpushbutton::~lyqpushbutton()
{
qDebug() << "我的按钮类,析构函数";
}
2.3、窗口的源文件
#include "lywidget.h"
#include "lyqpushbutton.h"
#include <QPushButton>
#include <QDebug>
lywidget::lywidget(QWidget *parent)
: QWidget(parent)
{
//设置窗口标题
setWindowTitle("应用程序测试");
lyqpushbutton *mybtn = new lyqpushbutton;
mybtn -> setParent(this);
mybtn -> setText("我的按钮");
mybtn -> move(100,0);
}
lywidget::~lywidget()
{
qDebug() << "窗口,析构函数";
}
当创建的对象在堆区的时候,如果父类是Object、或子类,或子类派生的类,会把"孩子"放在对象树上,当释放的时候,会自动从子类向上析构。