我在游戏中设置有些困难。因为我一次只能激活一个选项,例如选项'Easy'
//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);
}
但是这样做了,我不明白为什么。
作为替代方案,我可以对radiobuttons进行分组,但我想解释为什么我的代码可以正常工作。
答案 0 :(得分:1)
如果您取消选中复选框actionEasy ui->actionEasy->isChecked() == false
,那么您的代码不会选中此复选框。
答案 1 :(得分:1)
你应该看一下here它会教你如何分组项目并同时只检查一项
答案 2 :(得分:0)
选中后禁用复选框。