QT实现扫雷界面(2024.9.18)
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QGridLayout>
#include <QLabel>
#include <QVBoxLayout>
#include <QTimer>
#include <QTime>
#include <QLCDNumber>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
protected slots:
void clicked();
// void updateTime();
private:
Ui::Widget *ui;
QPushButton *button;
QVBoxLayout *mainLayout;
QLabel *label;
//QTimer *timer;
// QLCDNumber *lcdNumber;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowTitle("扫雷");
/* // 设置LCD数字显示的大小和模式
lcdNumber->setDigitCount(8); // 设置显示的数字位数
lcdNumber->display("00:00:00"); // 初始显示时间*/
// 创建一个QWidget作为网格布局的容器
QWidget *gridContainer = new QWidget(this);
QGridLayout *gridLayout = new QGridLayout(gridContainer);
// 遍历行和列以创建并添加按钮
for (int row = 0; row < 16; ++row)
{
for (int column = 0; column < 16; ++column)
{
QPushButton *button = new QPushButton(); // 注意这里需要添加*来创建指针
button->setMinimumSize(QSize(40, 40));
button->setStyleSheet("QPushButton { background-color: gray; }");
gridLayout->addWidget(button, row, column); // 将按钮添加到网格布局的指定位置
}
}
label = new QLabel(this);
label->setAlignment(Qt::AlignCenter); // 设置文本对齐
label->setFrameShape(QLabel::Panel); // 设置框架形状为Panel
label->setFrameShadow(QLabel::Sunken); // 设置框架阴影为Sunken
label->setLineWidth(8); // 设置框架线宽为8
label->setFixedSize(this->width(), 60);
// 设置主布局为QVBoxLayout,并将label和gridContainer作为子项添加
mainLayout = new QVBoxLayout(this);
mainLayout->addWidget(label);
mainLayout->addWidget(gridContainer);
/* timer = new QTimer(this);
// 连接QTimer的timeout信号到updateTime槽
connect(timer, &QTimer::timeout, this, &Widget::updateTime);
timer->start(1000); // 设置定时器间隔为1000毫秒(1秒)*/
// 设置窗口的布局为刚创建的垂直布局
this->setLayout(mainLayout);
}
Widget::~Widget()
{
delete ui;
}
void Widget::clicked()
{
}
/*
void Widget::updateTime()
{
int num = ui->lcdNumber->value();
num += 1;
ui->lcdNumber->display(num);
}*/
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
界面效果
原文地址:https://blog.csdn.net/SICHUAN3U8633/article/details/142346616
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!