2013-08-26 3 views
2

내 프로젝트에는 256 개의 푸시 버튼이 있으며 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); 
} 

예 한 번에 하나씩 만 수행하는 것이 더 나은 방법이 있다는 것을 알고 있습니다. 그러나 이것이 내 두뇌를 더 행복하게 만듭니다. lol

나중에 (내 기능에서) 모든 버튼을 순환시키고 각각의 매개 변수를 변경하고 싶습니다. (예 : 텍스트 변경)

for(int i=0; i<=255; i++) 
{ 
    blockGroup->button(i)->setText("Test"); 
} 

하지만 내 루프에서 blockGroup에 대한 선언되지 않은 식별자가 표시됩니다. 누군가가 왜 그리고/또는 어떻게이 문제를 해결할 수 있는지 말해 줄 수 있습니까? 시간 :

답변

1

에 대한

덕분에 대신에게 void MainWindow::AddBlocksToGroup()의 지역 변수를 선언의의 MainWindow 클래스의 구성원으로 QButtonGroup* blockGroup;를 선언하고는 나중에 멤버 함수에서가 액세스 할 수 있도록 만들 것입니다. // MainWindow 헤더 파일에 QButtonGroup 클래스의 전달 선언을 추가하는 것을 잊지 마십시오

+0

이 문제가 해결되었습니다. 텍스트를 변경하려고하면 오류가 발생하지만 완전히 다른 문제입니다. 감사합니다 :) – mrg95

+0

불편을 끼쳐 드려 죄송합니다. 그룹의 버튼을 편집하려고하면 불쾌한 읽기 액세스 위반 오류가 발생합니다. 아마 나는 여기에서 무엇인가 놓쳤다? 나는 QButtonGroup * blockGroup을 추가했다. mainwindow.h의 public 섹션에 있습니다. 그게 내가해야 할 전부인가? – mrg95

+0

public 섹션에서는 그렇지 않습니다. 더 좋은 방법은 MainWindow의 _private_ 섹션에 추가하는 것입니다. 오류에 관해서는 응용 프로그램을 디버그하고 어떤 일이 일어나는 지 확인할 수 있습니다. 특히 탐색하기 전에 탐색하려는 경우를 참조하십시오. 그룹) – Zlatomir