Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Qt - How to disable QCheckBox while retaining checked state?

I have a dialog with two checkboxes, let's call them A and B. When A is NOT checked, B should be able to be toggled as the user desires. When A IS checked, B should not be able to be toggled. Right now I have the following in my constructor function for the dialog:

connect(ui->A, SIGNAL(toggled(bool)),
        this, SLOT(setBCheckable(bool)));

...and then I have that function as this:

void MyClass::setBCheckable(bool AChecked)
{
    if(AChecked)
    {
        ui->B->setCheckable(false);
    }
    else
    {
        ui->B->setCheckable(true);
    }
}

However, when I do this, I've noticed that when I click A, B will APPEAR to retain it's status, but then when I move the mouse over it (whether A is still clicked or not, just the next time I mouse over after checking A), it refreshes B to NOT being clicked. I cannot have it doing this, since I need the function to retain the value for B even when B cannot be changed. Is there a way to do this? To summarize, I need a way for a QCheckBox to keep it's checked status even when the button cannot be toggled. Thanks in advance!

like image 918
thnkwthprtls Avatar asked Jun 03 '14 13:06

thnkwthprtls


1 Answers

use the function setEnabled(false) this will disable but should keep its state

like image 121
AngryDuck Avatar answered Nov 12 '22 03:11

AngryDuck