2017-03-30 14 views
0

저는 Qt를 처음 접했고 QGroupBox를 QRadioButtons (정확하게 32 개)로 구성하여 간단한 UI를 만들었으므로 선택한 UI를 찾고 싶습니다. 나는 포럼과 사물을 살펴 봤지만, 내가 찾은 대답은 작동하지 않으며, 하나는 QGroupBox의 존재하지 않는 방법에 대한 문서를 참조했다. 아래 스 니펫을 감안할 때 선택된 QRadioButton을 어떻게 찾을 수 있습니까?Qt 5 QGroupBox 선택한 라디오 버튼 찾기

QGroupBox* thingGroup = ui->thingGroupBox; 

도움 주셔서 감사합니다.

+0

당신은 어떤에서 당신이 선택하면 그것을 얻을하려는 경우 또는 수행 시각? – eyllanesc

답변

1

그 중 하나를 선택할 때 얻으려면 토글 된 신호를 사용하고 일부 슬롯에 연결 한 다음 sender() 함수를 사용하여 QRadioButton으로 변환하십시오.

* .H

public slots: 
    void onToggled(bool checked); 

* cpp를

QGroupBox *thingGroup = ui->groupBox; 

QVBoxLayout *lay = new QVBoxLayout; 

thingGroup->setLayout(lay); 

for(int i = 0; i < 32; i++){ 
    QRadioButton *radioButton = new QRadioButton(QString::number(i)); 
    lay->addWidget(radioButton); 
    connect(radioButton, &QRadioButton::toggled, this, &{your Class}::onToggled); 
} 

슬롯 :

void {your Class}::onToggled(bool checked) 
{ 
    if(checked){ 
     //btn is Checked 
     QRadioButton *btn = static_cast<QRadioButton *>(sender()); 
    } 

} 
+0

그러나 이것에 대한 유일한 문제는 32 개의 라디오 버튼이 있기 때문에 동일한 라인을 32 번 복사하여 붙여 넣어야한다는 것입니다. 클라이언트가 '다음'버튼을 누르면 올바른 라디오 버튼 만 있으면됩니다. – Tobsta

+0

QRadioButton을 어떻게 작성했는지 코드를 보여주고 QGroupBox에 추가했습니다. – eyllanesc

+0

개별 라디오 버튼을 우회하는보다 효율적인 방법이 있습니까? – Tobsta