3.1、按钮创建的两种方式
在Qt中,最常用的控件之一就是按钮,按钮有以下两种创建方式:
注意:在创建按键之前一定要先包含按钮控件的头文件#include <QPushButton>
#include <QPushButton>//按钮控件的头文件
1、先创建,再赋值
//创建一个按键
QPushButton *btn=new QPushButton;
//btn->show();//show以顶层的方式弹出窗口控件
//让btn对象 依赖在myWidget窗口中
btn->setParent(this);
//显示文本
btn->setText("第一个按钮");
上面代码中,一个按钮其实就是一个QPushButton类下的对象,如果只是创建出对象,是无法显示到窗口中的,所以我们需要依赖一个父窗口,也就是指定一个父亲利用setParent
函数即可,如果想设置按钮上显示的文字利用setText
,移动按钮位置用move
2、创建的同时赋值
//创建第二个按钮 按照控件大小创建窗口
QPushButton *btn2=new QPushButton("第二个按钮",this);
//移动btn2按钮
btn2->move(100,100);
//重新指定按钮大小
btn2->resize(200,200);
//重置窗口大小
resize(600,400);
//设置固定窗口大小
setFixedSize(600,400);
//设置窗口标题
setWindowTitle("第一个窗口");
第二种创建方式在new一个按键的时候就对按键进行了赋值操作,并将其绑定到了myWidget父类窗口下。
对于窗口而言,我们可以修改左上角窗口的标题setWindowTitle,重新指定窗口大小:resize,或者设置固定的窗口大小setFixedSize;
效果展示:
小结:
总结:
- 创建
QPushButton * btn = new QPushButton
- 设置父亲
setParent(this)
- 设置文本
setText(“文字”)
- 设置位置
move(宽,高)
- 重新指定窗口大小
resize
- 设置窗口标题
setWindowTitle
- 设置窗口固定大
小setFixedSize
3.2、创建一个自己的按钮对象
1、创建按钮类(MyPushButton)
创建一个名为mypushbutton.h
的头文件,把类的声明写在里面
#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H
#include <QPushButton>
class MyPushButton : public QPushButton//公有继承于QPushButton
{
Q_OBJECT
public:
explicit MyPushButton(QWidget *parent = nullptr);//构造函数参数默认为空
~MyPushButton();//默认析构
signals:
};
#endif // MYPUSHBUTTON_H
explicit
只用于修饰只有一个参数的构造函数,用于表明改构造函数是显式的(禁止隐式转换和自动类型转换),和它相对的是implicit
,表示构造函数是隐式的。
更多关于explicit的信息可以参考以下文章或自行csdn:
C++ explicit关键字详解_c explicit-CSDN博客
创建名为mypushbutton.cpp
的源文件,用于写类的实现
#include "mypushbutton.h"//链接类的声明
#include <QDebug>//Debug文字需要头文件
MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)//构造函数初始化赋值
{
qDebug()<<"我的按钮类构造调用";
}
MyPushButton::~MyPushButton()//析构
{
qDebug()<<"我的按钮类析构";
}
至此,类就创建完成了,下面我们就可以实例化对象了
2、创建自己的按钮对象
//创建一个自己的按钮对象
MyPushButton *myBtn=new MyPushButton;
myBtn->setText("我自己的按钮");
myBtn->move(200,0);
myBtn->setParent(this);//设置到对象树中,窗口释放的时候会被自动释放
根据之前我们创建按钮的方法,我们就能实例化自己实现的按钮了。