2

在我的项目中,我有 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 标识符。有人能告诉我为什么和/或如何解决这个问题吗?

谢谢你的时间 :)

4

1 回答 1

1

将 声明QButtonGroup* blockGroup;为类中的成员MainWindow,而不是将其声明为的局部变量,void MainWindow::AddBlocksToGroup()这将使它可以从您以后的成员函数中访问。//不要忘记将类的前向声明添加QButtonGroup到MainWindow头文件中

于 2013-08-26T03:53:10.413 回答