2011-04-27 5 views
0

아마 내가 묻는 것은 매우 쉽지만 막혀있다! :( QT 및 체크 박스 문제

내가이 QWidget이있는 내가 QCheckBox '말이지

내가 체크 박스에서 changestate 신호를 잡는 방법을 알아낼 수없는 것의 번호를 추가하는 QGridLayout로드가 ... .

상자 for 루프에 추가 된 체크하는 내가 만드는 새로운 QCheckBox 및

내가 연결되어있는 무슨

? ... qgridlayout에 위젯으로 추가하는 각 버튼의 내 맞춤 슬롯 또는 som에 신호 변경 다른 것?

내가 사용하는 코드는 내가 확인을 취소합니다,하지만 난 신호를 잡을 수는 없습니다,

QGridLayout *myLayout = new QGridLayout; 
for (int i=0; i<(int)m_List.size(); i++) 
{ 
    QCheckBox *button = new QCheckBox; 
    button->setText(m_List[i].m_strName.c_str()); 
    button->setIcon(QIcon(m_List[i].m_strThumbNailPath.c_str())); 
    button->setIconSize(QSize(50, 50)); 
    button->setCheckable(true); 
    myLayout->addWidget(button); 
    connect(button, SIGNAL(stateChanged), this, SLOT(checkboxStateChanged)); 
} 


myLayout->setRowStretch(2, 10); 
myLayout->setColumnStretch(2, 10); 

QWidget *myWidget = new QWidget; 
myWidget->setLayout(myLayout); 

myToolbox = new QToolBox; 
myToolbox->addItem(myWidget, "Options"); 

이 제대로 체크 박스를 표시입니다 ... 내가 무엇을 놓치고? 감사합니다. 당신은 체크 박스 상태를 얻을 것이다

connect(button, SIGNAL(stateChanged(int)), this, SLOT(checkboxStateChanged(int))); 

:

답변

3

연결이 문제가 (아무 서명) :

connect(button, SIGNAL(stateChanged), this, SLOT(checkboxStateChanged)); 

가에 parementers을 추가 무언가 같이 stateChanged

checkboxStateChanged이 없어야합니다 checkboxStateChanged int 매개 변수는

중 하나임

열거 값 문제를 here

+2

사실, OP는 아마도'SIGNAL (toggled (bool))'에 연결해야합니다. 'SIGNAL (stateChanged (int))'는 삼중 체 체크 박스 (드물게 사용됨)에서만 흥미 롭습니다. 그리고 네, [문서] (http://doc.trolltech.com/4.7/qcheckbox.html)는 다소 오해의 소지가 있습니다. ('toggled (bool)'은'QAbstactButton'에 대신 정의되어 있습니다). –

+0

글쎄, 난 그냥 자신의 질문에 대답 (- : – snoofkin

+0

옛 스타일의 신호/슬롯을 사용하여 모든 대답에 대한 좀 더 고급 사용자가 가서 새로운 스타일의 신호와 슬롯을 사용하여 다시 답변 것입니다. – neuronet

2

예, 소울 서퍼 아마 준 대답은 연결 문제를 해결합니다 볼 수 있지만되지는 튀김 할 수있는 큰 물고기가있다. 어떤 버튼이 클릭되었는지 이해하려면 어떻게해야할까요?

당신이 도움이 QSignalMapper 또는 QButtonGroup.

희망을 사용해야합니다 클릭 된 버튼을 이해합니다.