在我的项目中,我有256个PushButtons,我创建了一个函数,将它们全部添加到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的未声明标识符。有人可以告诉我为什么和/或如何解决这个问题?
感谢您的时间:)
答案 0 :(得分:1)
将QButtonGroup* blockGroup;
声明为MainWindow
类中的成员,而不是将其声明为void MainWindow::AddBlocksToGroup()
的局部变量,并且可以从以后的成员函数访问它。 //不要忘记将类QButtonGroup
的前向声明添加到MainWindow头文件