hat jemand eine Idee, wie man ein 2D Array von Pushbuttons
über einen Connect verbindet, welches auf einen einzige Slot
zeigt, welcher für alle QPushButton zuständig ist.
Ich habe eine Reihe von Buttons, welche die gleiche Aufgabe
erledigen sollen.
Ich programmiere für ein Schulprojekt TicTacToe.
Ich habe dynamisch ein Gridlayout erzeugt, welches ein 3x3 Spielfeld aus PushButtons hat.
Ich möchte die Buttons in ein Array laden, um es leichter auszuwerten welcher Spieler eine Reihe voll hat
Ich habe gehört, dass es anscheinend besser gehen soll die Buttons in ein Array zu laden, wenn man das Spielfeld dynamisch anlegt.
Code: Alles auswählen
TTT_Test::TTT_Test(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::TTT_Test)
{
ui->setupUi(this);
// Grid layout with 9 buttons
QGridLayout *gridLayout = new QGridLayout;
QPushButton *b1 = new QPushButton();
QPushButton *b2 = new QPushButton();
QPushButton *b3 = new QPushButton();
QPushButton *b4 = new QPushButton();
QPushButton *b5 = new QPushButton();
QPushButton *b6 = new QPushButton();
QPushButton *b7 = new QPushButton();
QPushButton *b8 = new QPushButton();
QPushButton *b9 = new QPushButton();
// addWidget(*Widget, row, column, rowspan, colspan)
// 0th row
gridLayout->addWidget(b1,0,0,1,1);
gridLayout->addWidget(b2,0,1,1,1);
gridLayout->addWidget(b3,0,2,1,1);
// 1st row with 2-column span
gridLayout->addWidget(b4,1,0,1,1);
gridLayout->addWidget(b5,1,1,1,1);
gridLayout->addWidget(b6,1,2,1,1);
// 2rd row with 3-column span
gridLayout->addWidget(b7,2,0,1,1);
gridLayout->addWidget(b8,2,1,1,1);
gridLayout->addWidget(b9,2,2,1,1);
// Create a widget
QWidget *w = new QWidget();
// Set the grid layout as a main layout
w->setLayout(gridLayout);
w->setStyleSheet("QPushButton { background-color: white;"
"height:135px;"
"width:150px;"
"border: 1px solid black;}");
// Display
w->show();
}