我们开始学习Qt,首先我们学习QPushButton!
构造函数:
QPushButton::QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr) Constructs a push button with an icon and a text, and a parent. Note that you can also pass a QPixmap object as an icon (thanks to the implicit type conversion provided by C++). QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr) Constructs a push button with the parent parent and the text text. QPushButton::QPushButton(QWidget *parent = nullptr) Constructs a push button with no text and a parent.
1.创建一个按钮:
Widget.cpp文件 #include "Widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) { //创建一个QpushButton按钮 QPushButton *btn = new QPushButton("这是一个按钮"); btn->show(); //show是以顶层的方式弹出窗口控件 } Widget::~Widget() { }
得到结果( btn->show(); 顶层弹出的原因导致的)
解决:
#include "Widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) { //创建一个QpushButton按钮 QPushButton *btn = new QPushButton("这是一个按钮"); //btn->show();//show是以顶层的方式弹出窗口控件 //解决让btn依赖上Widget btn->setParent(this);//Widget只有一个 }
结果:
二.设置按钮名称: btn->setText("XXXX");
#include "Widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//创建一个QpushButton按钮
QPushButton *btn = new QPushButton("这是一个按钮");
// btn->show();//show是以顶层的方式弹出窗口控件
//解决让btn依赖上Widget
btn->setParent(this);//Widget只有一个
//设置文本
btn->setText("这是设置文本后的按钮");
}
Widget::~Widget()
{
}
结果:
三.使用QPushButton *btn = new QPushButton("这是一个按钮2",this);形式创建一个按钮
QPushButton *btn = new QPushButton("这是一个按钮2",this);
但是这样会出现一个`缺点`: 窗口运行时候会只是根据按钮大小创建
解决:重置窗口大小——resize(300,300);
#include "Widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QPushButton *btn2 = new QPushButton("这是一个按钮2",this);
resize(300,300);
}
Widget::~Widget()
{
}
结果:
我们把btn1 和 btn2 一起显示会发现出现重叠情况
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//创建一个QpushButton按钮
QPushButton *btn = new QPushButton("这是一个按钮");
// btn->show();//show是以顶层的方式弹出窗口控件
//解决让btn依赖上Widget
btn->setParent(this);//Widget只有一个
//设置文本
btn->setText("这是设置文本后的按钮");
QPushButton *btn2 = new QPushButton("这是一个按钮2",this);
resize(300,300);
}
结果:
解决:重新设置按钮的坐标 ————btn->move(100,100);
结果:
重新设置窗口的标题: setWindowTitle("这是一个新设置的标题");
结果:
设置固定窗口大小:setFixedSize(100,100) ————窗口大小固定无法扩展大小