我在遊戲中有一些難度設置。因爲我一次只能激活一個選項,例如選項'簡單'複選框應該是不可檢查的
//Uncheck all other difficulty options
if(ui->actionMedium->isChecked())
{
ui->actionMedium->setChecked(false);
}
if(ui->actionHard->isChecked())
{
ui->actionHard->setChecked(false);
}
現在的問題是,如果我點擊已經選中的複選框,複選框將取消選中。好吧,那是一個複選框的正常行爲,所以我說
//check if its alreay checked
if(ui->actionEasy->isChecked())
{
ui->actionEasy->setChecked(true);
}
但這doent工作,我不明白爲什麼。
作爲替代我可以組單選按鈕,但我想unterstand爲什麼我的代碼doent工作。
要選擇幾個互斥選項中的一個,您應該使用單選按鈕而不是複選框。通過添加自定義行爲錯誤地使用複選框是一個壞主意。 – bames53
最後的代碼段應該做什麼?如果容易檢查設置容易檢查?這沒有多大意義。 – 2013-07-08 21:24:00
您應該爲每個函數中的所有三項添加設置更改。因此,如果一個設置爲選中狀態,另一個設置爲在相同的「if」中未選中。但我也同意@ bames53 – RST