QRadioButton類中Toggled()信號的使用方法
1.說明
QRadioButton中,Toggled()信號是在Radio Button狀態(開、關)切換時發出的,而clicked()信號是每次點擊Radio Button都會發出該信號。實際使用時,一般狀態改變時才有必要去相應,因此,Toggled()信號更適合狀態監控。
由於QRadioButton類繼承於QAbstractButton類
可以在QAbstractButton類中查閱Toggled()信號的說明
Toggled()信號的定義如下:
2.實例
(1)在Qt Designer上放置三個Radio Button控件,其中第一個控件可以設為默認選項
默認選項的設置方法如下:
(2)綁定信號槽
connect(ui.radioButton, SIGNAL(toggled(bool)), this, SLOT(radioBtnSlot())); connect(ui.radioButton_2, SIGNAL(toggled(bool)), this, SLOT(radioBtnSlot2())); connect(ui.radioButton_3, SIGNAL(toggled(bool)), this, SLOT(radioBtnSlot3()));
注意:SIGNAL()內為toggled(bool)
(3)槽函數為
void myQtEx::radioBtnSlot() { if (ui.radioButton->isChecked()) { qDebug() << "radio button 1 is checked!"; } else { qDebug() << "radio button 1 is unchecked!"; } } void myQtEx::radioBtnSlot2() { if (ui.radioButton_2->isChecked()) { qDebug() << "radio button 2 is checked!"; } else { qDebug() << "radio button 2 is unchecked!"; } } void myQtEx::radioBtnSlot3() { if (ui.radioButton_3->isChecked()) { qDebug() << "radio button 3 is checked!"; } else { qDebug() << "radio button 3 is unchecked!"; } }
注意判斷條件:isChecked()。這樣可以在控件各種對應的槽函數內執行對應操作,而沒有必要控件之間操作的交叉。
(4)依次點擊三個控件RadioButton2 -> RadioButton3 -> RadioButton1,結果如下:
神愛世人,甚至將他的獨生子(耶穌)賜給他們,叫一切信他的,不至滅亡,反得永生。(聖經·約翰福音3:16)