QT的QPushButton类、对象树、信号和槽

QPushButton

QPushButton的信息

使用时需要包含==头文件 ==

#include 

需要 包含widget部件

 QT += widgets

它的父类是QWidget
它的子类是QCheckBox, QPushButton, QRadioButton, and QToolButton

QPushButton的一些函数

//创建对象的方式
//先创建对象再初始化
QPushButton button * = new QPushButton;
button->setParent(class型指针)    //指定创建对象的基类
button->setText(字符串)			//设置按钮上显示的字符串	

//在创建按钮对象时 直接指定所创建对象的基类和字符串上显示的内容
QPushButton button * = new QPushButton(字符串,class型指针);


//创建好按钮对象后的一些操作
button->move(100,100);	//将按钮移动到坐标位置为(100,100)位置
button->resize(50,50);	//重新指定按钮的大小

QWidget的一些函数

resize(100,100);		//在窗口对象的构造函数中调用 实现重现调整窗口的大小
setFixedSize(100,100);		//设置固定的窗口大小
setWindowTitle(字符串);			//设置窗口的标题

对象树

对象树的作用是为了方便我们在父类中为子类开辟了堆区的空间是,会将创建的对象加入到QObject的对象树下,在父类对象进行析构的时候,子类的对象也会随之析构。前提是需要指定子类对象的父亲

button->setParent(this);	

这样就会在父类进行析构的时候,子类也会自动进行析构

QT的QPushButton类、对象树、信号和槽_第1张图片

信号和槽

需要使用connect函数来进行松散耦合,下边函数的参数1和参数2属于一个对象,参数3和参数4属于另一个对象,通过connect进行耦合

    //需求1 点击我的按钮 来关闭窗口
    //参数都是地址
    //参数1 信号的发送者 参数2 发送的信号(函数地址)  参数3 信号的接受者 参数4 槽函数(信号的处理)(函数地址)
    connect(myBtn,&QPushButton::clicked,this,&QPushButton::close);

源文件

#include "mwidget.h"
#include       //包含按钮头文件
//需要检查中文编码是不是utf8
// ./工具/选项/文本编辑器/行为/修改编码格式
//mWidget是一个窗口对象
mWidget::mWidget(QWidget *parent)
    : QWidget(parent)
{
    //创建第一个按钮
    QPushButton * btn = new QPushButton;
    //btn->show();            //show以顶层方式显示空间
    //让btn对象 依赖在mWidget下
    btn->setParent(this);			//设置父类
    //显示文本
    btn->setText("第一个按钮");		//设置按钮上显示的内容

    //创建第二个按钮,按照空间的大小创建窗口,顺便指定其父类
    QPushButton * btn2 = new QPushButton("第二个按钮",this);

    //移动btn2按钮
    //QT中坐标系是以左上角为(0,0)原点
    btn2->move(100,100);
    //按钮也可以重新指定大小
    btn2->resize(50,50);
    
    //重新定义窗口的大小
    resize(600,400);

    //设置固定的窗口大小
    setFixedSize(600,400);
    //设置窗口标题
    setWindowTitle("第一个窗口");

    //创建一个自己的按钮对象
    //当创建的对象 如果指定的父亲是QObject的子类或者子类的子类等
    //就会加入对象树 在父类进行析构的时候 会先把子类的对象给析构
    MyPushButton * myBtn = new MyPushButton();
    myBtn->setText("我自己的按钮");
    myBtn->move(200,0);
    myBtn->setParent(this);


    
    //需求1 点击我的按钮 来关闭窗口
    //参数都是地址
    //参数1 信号的发送者 参数2 发送的信号(函数地址)  参数3 信号的接受者 参数4 槽函数(信号的处理)(函数地址)
    connect(myBtn,&QPushButton::clicked,this,&QPushButton::close);
}

mWidget::~mWidget()
{
    qDebug()<<"父类的析构函数";				//在命令行输出内容
}

头文件

#ifndef MWIDGET_H
#define MWIDGET_H
#include "mypushbutton.h"
#include 
#include 			//对于这个QDebug这个头文件是类似于便于使用cin和cout才包含的

class mWidget : public QWidget
{
    Q_OBJECT

public:
    mWidget(QWidget *parent = nullptr);
    ~mWidget();
};
#endif // MWIDGET_H

你可能感兴趣的:(QT,qt,c++,开发语言)