Могу ли я снять отметку с группы RadioBottoms внутри группового поля?

нижние радиостанции внутри группового бокса будут рассматриваться как группа низов. Они взаимоисключающие. Как я могу очистить их состояния проверки ??

У меня есть несколько радионизов, один из них проверен. Как можно "почистить" (снять галочки) все радио днища?? «setChecked» не работает внутри группы, я пытался сделать следующее, но не смог.

Мой код выглядит следующим образом: radioButtom находится внутри groupBox, и я хочу его снять. Первый setChecked работает, а второй нет, RadioBottom не снят

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    QRadioButton *radioButton;
    ui->setupUi(this);
    radioButton->setChecked(true);
    radioButton->setChecked(false);
}

Где проблема в моем коде?


person Claire Huang    schedule 12.05.2010    source источник


Ответы (2)


Хитрость заключается в том, чтобы отключить свойство autoExclusive, прежде чем снять флажок, а затем снова включить его.

ui->radioButton->setChecked(true);
ui->radioButton->setAutoExclusive(false);
ui->radioButton->setChecked(false);
ui->radioButton->setAutoExclusive(true);

После этого RadioButton снимается.

person Jérôme    schedule 12.05.2010
comment
Я помню, как однажды работал над этой проблемой, до того, как существовал SO, чтобы помочь мне найти ответы, подобные этому. - person Caleb Huitt - cjhuitt; 12.05.2010

В документации Qt сказано: QRadioButton — это кнопка выбора, которую можно включить (отметить) или выключить (отключить). Радиокнопки обычно предоставляют пользователю выбор «один из многих». В группе радиокнопок одновременно может быть отмечена только одна радиокнопка; если пользователь выбирает другую кнопку, ранее выбранная кнопка отключается. AFAIK Я думаю, что вы не сможете отметить все QRadioButtons.

В моей практике я никогда не видел, чтобы сразу все QRadioButtons были отмечены флажком в одном диалоговом окне/окне. Но может быть я ошибся.

В качестве решения с моей стороны я могу предложить вам создать один дополнительный QRadioButton, а затем скрыть его, поэтому, когда вам нужно скрыть все QRadioButton на одном виджете, вы можете просто установитьChecked(true) на скрытый.

Удачи.

person mosg    schedule 12.05.2010
comment
Спасибо, я все еще думаю, как настроить свой UI, чтобы сделать его более понятным и удобным. Это может быть хорошим способом ^^ - person Claire Huang; 13.05.2010