Ich erstelle mir ein Feld mit Buttons, die ich erstmal alle disable. Dann möchte ich mir eine bestimmte Zeile von den Buttons enablen. Dazu habe ich mir folgenden Code ausgedacht der zur Laufzeit abstürzt
QList<QButtonGroup*> row;
// Button Feld anlegen, jede Zeile in einer ButtonGroup und die Buttongroups in einer QList sammeln
for (int i = 0; i < 12; ++i)
{
QButtonGroup* currentRow = new QButtonGroup();
for (int j = 0; j< 4; ++j)
{
QPushButton *button = new QPushButton(QString::number(i,10),NULL);
currentRow->addButton(button);
qgl_Spielfeld->addWidget(button, i, j);
button->setEnabled(false);
}
row << currentRow;
}
// eine Spezielle Reihe an Buttons enablen
int rowNumber = 0;
for (int i = 0; i< 4;i++)
{
row.at(rowNumber)->button(i)->setEnabled(true);
}
Das Problem ist, dass die Buttons die ich an der stelle i eigentlich wieder auslesen wollte alle Null sind. Was ist denn hier bloß falsch?
Bin für jeden Tipp dankbar!
// ### FEHLERHAFTER CODE ###
// eine Spezielle Reihe an Buttons enablen
int rowNumber = 0;
for (int i = 0; i< 4;i++)
{
row.at(rowNumber)->button(i)->setEnabled(true);
}
// ### REPARIERTER CODE ###
int rowNumber = 0;
QList<QAbstractButton*> list = row.at(rowNumber)->buttons();
for (int i = 0; i< 4;i++)
{
list.at(i)->setEnabled(true);
}
scheinbar haben Buttons in der ButtonGroup nicht Automatisch eine ID, sondern ich muss mir alle Buttons der Group als Liste geben lassen.