使用时需要包含==头文件 ==
#include
需要 包含widget部件
即
QT += widgets
它的父类是QWidget
它的子类是QCheckBox, QPushButton, QRadioButton, and QToolButton
//创建对象的方式
//先创建对象再初始化
QPushButton button * = new QPushButton;
button->setParent(class型指针) //指定创建对象的基类
button->setText(字符串) //设置按钮上显示的字符串
//在创建按钮对象时 直接指定所创建对象的基类和字符串上显示的内容
QPushButton button * = new QPushButton(字符串,class型指针);
//创建好按钮对象后的一些操作
button->move(100,100); //将按钮移动到坐标位置为(100,100)位置
button->resize(50,50); //重新指定按钮的大小
resize(100,100); //在窗口对象的构造函数中调用 实现重现调整窗口的大小
setFixedSize(100,100); //设置固定的窗口大小
setWindowTitle(字符串); //设置窗口的标题
对象树的作用是为了方便我们在父类中为子类开辟了堆区的空间是,会将创建的对象加入到QObject的对象树下,在父类对象进行析构的时候,子类的对象也会随之析构。前提是需要指定子类对象的父亲
button->setParent(this);
这样就会在父类进行析构的时候,子类也会自动进行析构
需要使用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