嘿,我想创建一个pushButtons的8x8字段。使用此代码时
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QVector>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
QGridLayout* layout = new QGridLayout();
ui->centralwidget->setLayout(layout);
QVector<QVector<QPushButton*>> buttons2DVector(8);
for (int i=0;i<8;i++){
buttons2DVector[i].resize(8);
for(int j=0;j<8;j++){
QPushButton *b = new QPushButton("button");
layout->addWidget(b,i,j);
buttons2DVector[i][j] = b;
}
}错误为:未知类型名称"QGridLayout“未知类型名称"ui”
代码是给我的,但我不知道如何正确使用它。正如你可能看到的,我是QT和C++的初学者,但如果有人能帮助我就太好了。
发布于 2020-06-15 23:21:58
假设您在MainWindow类声明中添加了以下内容:
QVector<QVector<QPushButton*>> buttons2DVector(8);
void createGrid();您可以通过编程方式创建网格,如下所示:
#include "mainwindow.h"
#include <QVector>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
createGrid();
}
void MainWindow::createGrid() {
QFrame *frame = new QFrame(this);
QGridLayout *layout = new QGridLayout(frame);
for (int i=0;i<8;i++){
buttons2DVector[i].resize(8);
for(int j=0;j<8;j++){
QPushButton *b = new QPushButton("button", layout);
layout->addWidget(b,i,j);
buttons2DVector[i][j] = b;
}
}
setCentralWidget(frame);
}https://stackoverflow.com/questions/62390535
复制相似问题