В моем проекте у меня 256 кнопок, и я сделал функцию, которая добавляет их все в QButtonGroup.
void MainWindow::AddBlocksToGroup()
{
QButtonGroup* blockGroup = new QButtonGroup(this);
blockGroup->addButton(ui->Oblock_0, 0);
blockGroup->addButton(ui->Oblock_1, 1);
blockGroup->addButton(ui->Oblock_2, 2);
...
blockGroup->addButton(ui->Oblock_255, 255);
}
Да, я знаю, что есть лучшие способы сделать это, кроме одного, но это делает мой мозг счастливее. лол
Позже в моей программе (в более поздней функции) я хочу перебрать все кнопки и изменить некоторые параметры для каждой из них. (Изменение текста, например)
for(int i=0; i<=255; i++)
{
blockGroup->button(i)->setText("Test");
}
Но я получаю необъявленный идентификатор для blockGroup в моем цикле. Может кто-нибудь сказать мне, почему и / или как это исправить?
Спасибо за ваше время 🙂
Объявить QButtonGroup* blockGroup;
в качестве члена в MainWindow
класс, вместо того, чтобы объявить его локальной переменной void MainWindow::AddBlocksToGroup()
и это сделает его доступным из вашей последующей функции-члена. // не забудьте добавить предварительную декларацию для класса QButtonGroup
в заголовочный файл MainWindow
Других решений пока нет …