У меня есть некоторые настройки сложности в игре. Потому что только один параметр должен быть активным сразу, например. для опции «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);
}
но это doent работы и я не понимаю, почему.
Как альтернатива, я мог бы группировать радиокнопки, но мне хотелось бы разобраться, почему мой код работает.
Чтобы выбрать один из нескольких взаимоисключающих параметров, вы должны использовать переключатели, а не флажки. Неправильное использование флажков путем добавления пользовательского поведения - плохая идея. – bames53
Что должен делать последний фрагмент кода? Если легко проверяется, то установленный легко проверяется? Это не имеет большого смысла. –
вы должны добавить изменения настроек для всех трех в каждой функции. Поэтому, если один из них установлен установленным, другие устанавливаются непроверенными в том же 'if'. Но я также согласен с @ bames53 – RST