【问题标题】:Creating an array of buttons创建按钮数组
【发布时间】:2020-10-04 05:44:50
【问题描述】:

我或多或少是一个完整的初学者,所以如果这个问题确实太简单了,请原谅,但我尝试在 QT 中创建一个 Bottons 数组。它应该看起来类似于扫雷游戏。除了创建每个按钮甚至拥有之外,还有其他方法吗,当程序运行时,用户可以选择数组的大小,例如 8x8 字段。 我的目标最终是用户可以制作有点像地图,他可以为数组中的每个按钮以不同的方式着色,但如果有人能告诉我如何创建数组,那将非常有帮助。如果可能,请详细说明,因为我不习惯使用 QT 或 C++。

【问题讨论】:

标签: arrays qt button minesweeper


【解决方案1】:

您可以使用嵌套的 QVector 而不是数组来保存您的按钮,这是在 Qt MainWindow 上创建 8*8 按钮视图并将按钮保存在 QVector 中的代码,它可能会有所帮助

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;
    }
}

然后您可以轻松地使用任何按钮访问

  buttons2DVector[rowNum][columnNum]->func();

【讨论】:

  • 我应该把代码放在哪里?对不起,我真的是一个初学者。
  • 创建一个QT Widget Application项目,你应该找到一个默认创建的名为“MainWindow”的类,把这段代码放在它的构造函数中。这可能有助于澄清这个想法,但您应该调整它以满足您的需求。
  • 这就是我的 mainwindow.cpp 中的代码:` #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(新的 Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { 删除 ui; } ` 对不起,但我不知道这里的类和构造函数是什么..
猜你喜欢
  • 2020-09-11
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
相关资源
最近更新 更多