QT_2_添加自己的按钮类、对象树析构

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、或子类,或子类派生的类,会把"孩子"放在对象树上,当释放的时候,会自动从子类向上析构。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值