2012-06-10 101 views
3

我有3個單選按鈕和一個spinbox。每個單選按鈕都應該將spinboxes的值分別設置爲英寸,英尺或米。我會怎麼做?我必須知道哪個單選按鈕最後處於活動狀態,對嗎?有人可以給我一些示例代碼嗎?Qt - 記住上次選中的Radiobutton

回答

3

單選按鈕和複選框將其狀態保存爲值,並將其展示給用戶。您可以撥打isChecked()以瞭解您的成員變量單選按鈕的狀態。類似於

void some_button_hit(bool checked) 
{ 
    if (inches.isChecked()) {...} 
    else if (feet.isChecked()) {...} 
    else if (meters.isChecked()) {...} 
} 

和'wire'事件toggled來自任何這些。這通常在初始化, 使用表單編輯器或通過連接完成。

使用表單編輯器中,右鍵單擊一個單選按鈕,然後按照轉到插槽... 編輯器構建並連接事件處理程序:

void GroupBox::on_feet_toggled(bool checked) 
{ 
    ui->label->setText("feet"); 
} 
void GroupBox::on_inches_toggled(bool checked) 
{ 
    ui->label->setText("inches"); 
} 
void GroupBox::on_meters_toggled(bool checked) 
{ 
    ui->label->setText("meters"); 
} 
+1

您可以考慮提'QSignalMapper'的好辦法。 – tmpearce

+0

我的QT有點生疏......我記得連接並不是很容易。也許OP應該學會把表單編輯器用得很好...... – CapelliC