qfedu-qt-level/qtdemo01/widget.cpp

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()
{
}