文章目录
- 添加按钮 QPushButton
- 自定义控件
- 对象树
- 坐标系
https://www.bilibili.com/video/BV1g4411H78N?p=6
添加按钮 QPushButton
添加控件到窗口,需要添加内容到 mywidget.cpp
#include "mywidget.h"
#include <QPushButton> //按钮控件的头文件
#include "mypushbutton.h"
#include <QDebug>
// 命名规范
// 类名 首字母大写,单词和单词之间首字母大写
// 函数名 变量名称 首字母小写,单词和单词之间首字母大写myWidget::myWidget(QWidget *parent): QWidget(parent)
{//创建一个按钮QPushButton * btn = new QPushButton;//btn->show(); //show以顶层方式弹出窗口控件//让btn对象 依赖在 myWidget窗口中btn->setParent(this);//显示文本btn->setText("第一个按钮");//创建第二个按钮 按照控件的大小创建窗口QPushButton * btn2 = new QPushButton("第二个按钮",this);//移动btn2按钮btn2->move(100,100);//按钮可不可以 重新制定大小 可以!btn2->resize(50,50);//重置窗口大小resize(600,400);//设置固定窗口大小setFixedSize(600,400);//设置窗口标题setWindowTitle("第一个窗口");//创建一个自己的按钮对象MyPushButton * myBtn = new MyPushButton;myBtn->setText("我自己的按钮");myBtn->move(200,0);myBtn->setParent(this); //设置到对象树中//需求 点击我的按钮 关闭窗口//参数1 信号的发送者 参数2 发送的信号(函数的地址) 参数3 信号的接受者 参数4 处理的槽函数//connect( myBtn, &MyPushButton::clicked, this, &myWidget::close );connect( myBtn, &QPushButton::clicked, this, &QWidget::close );
}myWidget::~myWidget()
{qDebug() << "myWidget的析构调用";
}
按钮控件常用API
- 创建
QPushButton * btn = new QPushButton
- 设置父亲
setParent(this)
- 设置文本
setText("文字")
- 设置位置
move(宽,高)
- 重新指定窗口大小
resize
- 设置窗口标题
setWindowTitle
- 设置窗口固定大小
setFixedSize
自定义控件
想自定义按钮继承自QPushButton
选项中 没有这个类,可以选择它的父类 QWidget,然后修改文件。
#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H#include <QPushButton>class MyPushButton : public QPushButton
{Q_OBJECT
public:explicit MyPushButton(QWidget *parent = 0);~MyPushButton(); // 申明析构函数signals:public slots:
};#endif // MYPUSHBUTTON_H
#include "mypushbutton.h"
#include <QDebug>MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{qDebug() << "我的按钮类 构造调用";
}MyPushButton::~MyPushButton()
{qDebug() << "我的按钮类 析构";
}
对象树
当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。
这种机制 这一定程度上简化了内存回收机制。
坐标系
- (0,0) 在左上角。
- x以右为正方向
- y以下为正方向
伊织 2021-02-04 07:46