96 lines
3.1 KiB
C++
96 lines
3.1 KiB
C++
|
#include "widget.h"
|
||
|
|
||
|
// : Qwidget(parent) 初始化列表,调用父类构造函数
|
||
|
Widget::Widget(QWidget *parent)
|
||
|
: QWidget(parent)
|
||
|
{
|
||
|
// 初始化设置窗口的标题、大小和固定
|
||
|
// setWindowTitle("按钮板");
|
||
|
// // resize(400,300);
|
||
|
// setFixedSize(400, 190);
|
||
|
|
||
|
// 添加按钮
|
||
|
// 不要将对象存在栈区,应该在堆区创建
|
||
|
// QPushButton *btn = new QPushButton("点我啊",this);
|
||
|
// QPushButton *btn = new QPushButton;
|
||
|
// btn->setParent(this);
|
||
|
// btn->setText("点一下");
|
||
|
// btn->setFixedSize(200, 100);
|
||
|
// btn->move(100, 50); // 向右移动 100, 向下移动 50
|
||
|
|
||
|
// 创建 9 个按钮,三行三列,每个按钮的大小为 120,50
|
||
|
// 每个按钮之间的间隔为 10
|
||
|
// int w = 120, h = 50, space = 10;
|
||
|
// QVector<QPushButton *> vbs; // 使用指针类型存储按钮
|
||
|
// for (int i = 0; i < 3; i++)
|
||
|
// { // 修改行范围
|
||
|
// for (int j = 0; j < 3; j++)
|
||
|
// { // 修改列范围
|
||
|
// int btnNumber = i + j * 3 + 1;
|
||
|
// // QPushButton *btn = new QPushButton(QString::number(btnNumber), this);
|
||
|
// QPushButton *btn = new QPushButton;
|
||
|
// btn->setText(QString::number(btnNumber));
|
||
|
// btn->setParent(this);
|
||
|
// btn->setFixedSize(w, h);
|
||
|
// btn->move((space + w) * i + space, (space + h) * j + space);
|
||
|
// vbs.append(btn); // 将按钮添加到向量中
|
||
|
// }
|
||
|
// }
|
||
|
|
||
|
// 方法二
|
||
|
// int w=120, h =50,space=10;
|
||
|
// QVector<QPushButton *> vbs;
|
||
|
// for(int i=0;i <9; i++){
|
||
|
// // QString::number(int) 将整数转化为QString字符串
|
||
|
// QPushButton *btn=new QPushButton(QString::number(i+1), this);
|
||
|
// btn->setFixedSize(w,h);
|
||
|
|
||
|
// // 第一行
|
||
|
// int row = i/3;
|
||
|
// int col= i % 3;
|
||
|
// btn->move((space+w)*col+space,
|
||
|
// (space+h)*row+space);
|
||
|
// vbs.append(btn); // 将按钮添加到向量中
|
||
|
// }
|
||
|
|
||
|
|
||
|
resize(800,640);
|
||
|
setMaximumSize(900,700); // 窗口最大尺寸
|
||
|
move(0,0);
|
||
|
|
||
|
QPushButton *btn = new QPushButton("关闭",this);
|
||
|
btn->setFixedSize(120,50);
|
||
|
btn->move(10,10);
|
||
|
|
||
|
// 当前类对象 QPushButton 的点击事件感兴趣
|
||
|
// 使用 connect() 进行绑定到当前窗口的 close()
|
||
|
// 发送者和接受者都是 QObject 类对象的指针
|
||
|
// Qt5 的信号绑定槽函数的方式
|
||
|
connect(btn,&QPushButton::clicked,this,&Widget::close);
|
||
|
|
||
|
|
||
|
QPushButton *maxBtn = new QPushButton("最大化",this);
|
||
|
maxBtn->setFixedSize(120,50);
|
||
|
maxBtn->move(10,70);
|
||
|
|
||
|
// 绑定的槽函数是自定义的
|
||
|
connect(maxBtn,&QPushButton::clicked,this,&Widget::toggleShow);
|
||
|
}
|
||
|
|
||
|
void Widget::toggleShow() // 自定义槽函数
|
||
|
{
|
||
|
// qDebug() 引入 <QDebug> 头文件
|
||
|
qDebug()<<"show or hide"<<this->isMaximized() <<endl;
|
||
|
if(isMaximized())
|
||
|
{
|
||
|
showNormal(); // 槽函数可以作为成员函数使用
|
||
|
}
|
||
|
else{
|
||
|
showMaximized();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Widget::~Widget()
|
||
|
{
|
||
|
}
|