03 QPushButton按钮
3.1 窗口创建(其他组件的容器)
注意: 组件要依赖窗口存在,因此在学习按钮的时候首先需要创建窗口,后续的按钮或者其他组件,都依赖与该窗口,即都包含在这个窗口中
3.1.1 窗口.h文件
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>//窗口类头文件
class myWidget : public QWidget//自定义窗口继承自QWiget窗口
{
Q_OBJECT
public:
myWidget(QWidget *parent = nullptr);
~myWidget();
};
#endif // MYWIDGET_H
3.1.2 窗口.cpp文件
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
}
myWidget::~myWidget()
{
}
3.2 创建按钮
QPushButton类
注意:QPushBoutton是按钮控件,因此需要依赖于窗口存在。
main函数内引入窗口,并显示。
窗口的创建及相关设置在mywidget.cpp/h中,因此创建按钮等控件的时候在窗口的.cpp文件中创建
#include "mywidget.h"//窗口头文件:该头文件内包含窗口设置及窗口内的包含的组件设置
#include <QApplication>//应用程序头文件:
int main(int argc, char *argv[])
{
//(1)创建程序对象
QApplication a(argc, argv);
//(2)创建窗口对象
myWidget w;
//显示窗口
w.show();
return a.exec();
}
3.2.1 创建按钮方法1
创建代码: QPushButton * btn=new QPushButton
显示代码: btn—>show(),这种显示方法是独立显示空间,不依赖与窗口
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//(2)创建第一个按钮:首先引入头文件
QPushButton *btn=new QPushButton;
//2.1 显示按钮
//2.1.1方法:使用show以顶层的方式弹出窗口或控件(新开辟窗口进行显示)
btn->show();
}
myWidget::~myWidget()
{
}
3.2.2 设置按钮的依赖(父亲)
代码: btn->setParent(this);这种显示方法按钮依赖于当前窗口
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//(2)创建第一个按钮:首先引入头文件
QPushButton *btn=new QPushButton;
//2.1 显示按钮
//2.1.1方法:使用show以顶层的方式弹出窗口或控件(新开辟窗口进行显示)
//btn->show();
//2.1.2 方法:让窗口或控件依赖在父窗口中(mywidget窗口)
btn->setParent(this);
}
myWidget::~myWidget()
{
}
3.2.3 设置按钮文本
代码: btn->setText(“第一个按钮”);
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//(2)创建第一个按钮:首先引入头文件
QPushButton *btn=new QPushButton;
//2.1 显示按钮
//2.1.1方法:使用show以顶层的方式弹出窗口或控件(新开辟窗口进行显示)
//btn->show();
//2.1.2 方法:让窗口或控件依赖在父窗口中(mywidget窗口)
btn->setParent(this);
//2.2显示按钮上文本
btn->setText("第一个按钮");
}
myWidget::~myWidget()
{
}
3.2.4 创建按钮方法2
创建代码:QPushButton * btn=new QPushButton(“第二个按钮”,this);,
优点:这种创建方式,自动设置了按钮的名称和按钮的依赖。
缺点:但是会导致按照按钮组件的大小生成窗口,因此需要重新调整窗口大小
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
// //(2)创建第一个按钮:首先引入头文件
// QPushButton *btn=new QPushButton;
// //2.1 显示按钮
// //2.1.1方法:使用show以顶层的方式弹出窗口或控件(新开辟窗口进行显示)
// //btn->show();
// //2.1.2 方法:让窗口或控件依赖在父窗口中(mywidget窗口)
// btn->setParent(this);
// //2.2显示按钮上文本
// btn->setText("第一个按钮");
//(3)创建第二个按钮:
//这种方法创建,会按照控件的大小生成窗口,需要重置窗口大小
QPushButton *btn=new QPushButton("第二个按钮",this);
//重置窗口大小
resize(600,400);
}
myWidget::~myWidget()
{
}
3.2.5 设置按钮位置
创建代码: btn2->move(100,100);
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//(2)创建第一个按钮:首先引入头文件
QPushButton *btn=new QPushButton;
//2.1 显示按钮
//2.1.1方法:使用show以顶层的方式弹出窗口或控件(新开辟窗口进行显示)
//btn->show();
//2.1.2 方法:让窗口或控件依赖在父窗口中(mywidget窗口)
btn->setParent(this);
//2.2显示按钮上文本
btn->setText("第一个按钮");
//(3)创建第二个按钮:
//这种方法创建,会按照控件的大小生成窗口,需要重置窗口大小
QPushButton *btn2=new QPushButton("第二个按钮",this);
//移动按钮
btn2->move(100,100);
//重置窗口大小
resize(600,400);
}
myWidget::~myWidget()
{
}
3.2.6 设置按钮大小
创建代码: btn2->move(100,100);
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//(2)创建第一个按钮:首先引入头文件
QPushButton *btn=new QPushButton;
//2.1 显示按钮
//2.1.1方法:使用show以顶层的方式弹出窗口或控件(新开辟窗口进行显示)
//btn->show();
//2.1.2 方法:让窗口或控件依赖在父窗口中(mywidget窗口)
btn->setParent(this);
//2.2显示按钮上文本
btn->setText("第一个按钮");
//(3)创建第二个按钮:
//这种方法创建,会按照控件的大小生成窗口,需要重置窗口大小
QPushButton *btn2=new QPushButton("第二个按钮",this);
//移动按钮
btn2->move(100,100);
//重置窗口大小
resize(600,400);
//设置按钮大小
btn->resize(50,50);
}
myWidget::~myWidget()
{
}
3.3 窗口操作
3.3.1 设置窗口标题
创建代码:setWindowTitle(“第一个窗口”);
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//(2)创建第一个按钮:首先引入头文件
QPushButton *btn=new QPushButton;
//2.1 显示按钮
//2.1.1方法:使用show以顶层的方式弹出窗口或控件(新开辟窗口进行显示)
//btn->show();
//2.1.2 方法:让窗口或控件依赖在父窗口中(mywidget窗口)
btn->setParent(this);
//2.2显示按钮上文本
btn->setText("第一个按钮");
//(3)创建第二个按钮:
//这种方法创建,会按照控件的大小生成窗口,需要重置窗口大小
QPushButton *btn2=new QPushButton("第二个按钮",this);
//移动按钮
btn2->move(100,100);
//重置窗口大小
resize(600,400);
//设置窗口标题
setWindowTitle("第一个窗口");
}
myWidget::~myWidget()
{
}
3.4.2 设置固定窗口大小
创建代码: setFixedSize(600,400);
#include "mywidget.h"
//(1)引入按钮头文件
#include "QPushButton"
myWidget::myWidget(QWidget *parent)
: QWidget(parent)
{
//(2)创建第一个按钮:首先引入头文件
QPushButton *btn=new QPushButton;
//2.1 显示按钮
//2.1.1方法:使用show以顶层的方式弹出窗口或控件(新开辟窗口进行显示)
//btn->show();
//2.1.2 方法:让窗口或控件依赖在父窗口中(mywidget窗口)
btn->setParent(this);
//2.2显示按钮上文本
btn->setText("第一个按钮");
//(3)创建第二个按钮:
//这种方法创建,会按照控件的大小生成窗口,需要重置窗口大小
QPushButton *btn2=new QPushButton("第二个按钮",this);
//移动按钮
btn2->move(100,100);
//重置窗口大小
resize(600,400);
//设置窗口标题
setWindowTitle("第一个窗口");
//设置固定窗口大小
setFixedSize(600,400);
}
myWidget::~myWidget()
{
}