Qt——P7 对象树

本文详细介绍了在Qt中创建自定义按钮类MyPushButton的过程,包括构造函数、析构函数的实现,以及如何在自定义窗口myWidget中使用此类。同时,展示了如何设置窗口属性、按钮位置与文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mypushbutton.cpp

#include "mypushbutton.h"
#include<QDebug>

MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{
    qDebug() << "我的按钮类的调用";
}

MyPushButton::~MyPushButton()
{
    qDebug() << "我的按钮类的析构";
}

mywidget.cpp

#include "mywidget.h"
#include <QPushButton>
#include "mypushbutton.h"
#include<QDebug>

// 命名规范
// 类名 首字母大写,单词单词之间首字母大写
// 函数名 变量名称 首字母小写,单词与单词间首字母大写

// 快捷键
// 注释 ctrl + /
// 运行 ctrl + r
// 编译 ctrl + b

// 字体缩放 ctrl + 鼠标滚轮
// 查找 ctrl + f
// 帮助文档 F1
// 自动对齐 ctrl + i
// 同名之间的.h和.cpp快速切换 F4

myWidget::myWidget(QWidget *parent)
    : QWidget(parent)
{
    //重置窗口大小
    resize(600,400);

    //创建按钮
    QPushButton * btn = new QPushButton;

    btn->move(100,0);

    //show以顶层的方式弹出窗口控件
    // btn->show();

    // 让对象依赖在myWidget窗口中
    btn->setParent(this);

    //显示文本
    btn->setText("please click");

    //创建第二个按钮
    QPushButton * btn2 = new QPushButton("第二个按钮",this);

    //按钮重新设置大小
    btn2->resize(100,50);

    //移动第二个按钮
    btn2->move(100,100);

    //设置窗口标题
    setWindowTitle("first window");

    //设置固定的窗口大小
    setFixedSize(600,400);

    //创建一个自己的按钮对象
    MyPushButton * btn3 = new MyPushButton;
    btn3->move(100,200);
    btn3->setText("third button");
    btn3->setParent(this);
}

myWidget::~myWidget()
{
    qDebug() << "myWidget析构";
}

main.cpp

#include "mywidget.h"

#include <QApplication>     //包含一个应用程序类的头文件


//程序入口  argc命令行变量的数量  argv命令行变量的数组
int main(int argc, char *argv[])
{
    //a是应用程序对象,在Qt中有且仅有一个,且必须有
    QApplication a(argc, argv);
    //窗口对象  myWidget父类 -> Qwidget
    myWidget w;
    //窗口对象默认不会显示,必须要调用show方法显示窗口
    w.show();

    //让应用程序进入消息循环
    return a.exec();
}

当创建的对象在堆区的时候,如果它是友QObject所派生出来的类,可以不用管释放的操作,此对象会被放入对象树,Qt会自动帮你释放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值