Qt - 控件和布局

文章目录

    • 添加按钮 QPushButton
    • 自定义控件
    • 对象树
    • 坐标系


https://www.bilibili.com/video/BV1g4411H78N?p=6


添加按钮 QPushButton

添加控件到窗口,需要添加内容到 mywidget.cpp

#include "mywidget.h"
#include  //按钮控件的头文件
#include "mypushbutton.h"
#include 
// 命名规范
// 类名 首字母大写,单词和单词之间首字母大写
// 函数名 变量名称 首字母小写,单词和单词之间首字母大写
 

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 

class MyPushButton : public QPushButton
{
    Q_OBJECT
public:
    explicit MyPushButton(QWidget *parent = 0);

    ~MyPushButton();  // 申明析构函数

signals:

public slots:
};

#endif // MYPUSHBUTTON_H
#include "mypushbutton.h"
#include 

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

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

对象树

当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。

这种机制 这一定程度上简化了内存回收机制。


坐标系

  • (0,0) 在左上角。
  • x以右为正方向
  • y以下为正方向

伊织 2021-02-04 07:46

你可能感兴趣的:(其它编程语言/框架,qt,QPushButton,控件,布局)