2014-10-11 89 views

回答

6

添加按鈕進入GroupBox和使用findChildren,在此之後,你可以使用QButtonGroup或者乾脆通過所有按鈕列表進行迭代,並檢查radiobutton名。這是一種有效的方式,因爲它可以與4個按鈕或1000一起使用,如果您有許多按鈕,則應該編寫大代碼。

void MainWindow::on_pushButton_15_clicked(){ 
    QButtonGroup group; 
    QList<QRadioButton *> allButtons = ui->groupBox->findChildren<QRadioButton *>(); 
    qDebug() <<allButtons.size(); 
    for(int i = 0; i < allButtons.size(); ++i) 
    { 
     group.addButton(allButtons[i],i); 
    } 
    qDebug() << group.checkedId(); 
    qDebug() << group.checkedButton(); 
} 
+0

謝謝,我有一個簡單的問題與相同的問題有關:是否有可能爲像setData()這樣的每個單選按鈕設置值。 – 2014-10-12 13:15:49

+0

@LionKing是的,文檔說,你可以將setIcon和setText設置爲按鈕。 – Chernobyl 2014-10-12 13:22:53

+1

沒問題,關於我的查詢,我的意思是我想設置隱藏的值或數據到每個單選按鈕,比如'setData()'函數以便稍後獲取它。是否有可能這樣做。 – 2014-10-12 13:28:57

0

四個ID的數值應該是連續的。鑑於此,調用GetCheckedRadioButton來確定選擇哪一個。

+0

是Qt5中的GetCheckedRadioButton函數嗎? – 2014-10-12 00:41:05

0

您可以使用所有qt按鈕支持的'isChecked()'命令,並檢查每個單選按鈕。或者,您可以將一個函數連接到'切換(bool isChecked)'信號,並使用它來更新指示檢查四個單選按鈕中的哪一個的值。

+0

每個單選按鈕的名稱怎麼樣,如果每個單選按鈕都有自己的名字,則不會有問題。 – 2014-10-12 00:45:59

+0

你應該在他們的標籤說了什麼之後爲你的單選按鈕命名,並在代碼中跟蹤它們。您可以使用[text()](http://qt-project.org/doc/qt-4.8/qabstractbutton.html#text-prop)命令,但您必須從任何地方選擇您使用的單選按鈕。 – SimLeek 2014-10-12 02:33:02