views:

168

answers:

2

radio bottoms inside a group Box will be treated as a group of bottoms. They are mutual exclusive. How can I clean up their check states??

I have several radio bottoms, one of them are checked. How can I "clean" (uncheck) all radio bottoms?? "setChecked" doesn't work within a group, I tried to do following things but failed.

My code is as following, radioButtom is inside a groupBox, and I want to unchecked it. The first setChecked does works, but the second one doesn't, the radioBottom doesn't been unchecked

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

Where is the problem in my code?

+1  A: 

Hi. In Qt documentation said: A QRadioButton is an option button that can be switched on (checked) or off (unchecked). Radio buttons typically present the user with a "one of many" choice. In a group of radio buttons only one radio button at a time can be checked; if the user selects another button, the previously selected button is switched off. AFAIK I think that you will not be able to check off all QRadioButtons.

In my practice, I have never seen all checked off at once QRadioButtons in one dialog/window. But may be I have mistaken.

As the solution from my side, I may offer you to create one additional QRadioButton, and then hide it, so, when you need to hide all QRadioButton on one widget, you could just setChecked(true) on the hidden one.

Good luck.

mosg
Thanks, I'm still thinking about how to adjust my UI to make it more clear and convenience. This might be a good way ^^
Claire Huang
+4  A: 

The trick is to disable the autoExclusive property before unchecking it, then re-enabling it.

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

After this, the radioButton is unchecked.

Jérôme
Superb you are right :)
Shadow
I remember working through this problem once, before SO existed to help me find answers like this.
Caleb Huitt - cjhuitt
Thanks :D:D !! It solved my problem
Claire Huang