2013-08-26 46 views
2

在我的項目中,我有256個PushButton,並且我創建了一個將它們全部添加到QButtonGroup的函數。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標識符。有人能告訴我爲什麼和/或如何解決這個問題?

感謝您的時間:)

回答

1

聲明QButtonGroup* blockGroup;作爲MainWindow類中的成員,而不是宣佈它的void MainWindow::AddBlocksToGroup()一個局部變量,這將使它從您以後的成員函數訪問。 //不要忘記將類QButtonGroup的前向聲明添加到MainWindow頭文件中

+0

解決了這個問題:)當我嘗試更改文本時,現在出現錯誤,但這是一個完全不同的問題。謝謝:) – mrg95

+0

抱歉打擾你,當我嘗試編輯組中的一個按鈕時,我遇到了令人沮喪的讀取訪問衝突錯誤。也許我在這裏錯過了什麼?我添加了QButtonGroup * blockGroup;在mainwindow.h的公共部分。這就是我需要做的一切嗎? – mrg95

+0

不是真的在公共部分中,更好的選擇是將其添加到MainWindow的_private_部分,並且關於錯誤,您可以調試應用程序並查看會發生什麼情況(尤其請參閱在將按鈕添加到組) – Zlatomir