Qt - How to disable QCheckBox while retaining checked state?
use the function setEnabled(false)
this will disable but should keep its state
thnkwthprtls
C/C++ (specialty in Qt environment) Python Bash HTML/CSS Java JavaScript Ruby SQL
Updated on June 15, 2022Comments
-
thnkwthprtls almost 2 years
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!
-
thnkwthprtls almost 10 yearswow, I feel dumb now, I don't know how I missed that function in the docs :/ haha. Thanks for your help! (I'll mark the answer as accepted in a few minutes once the site lets me)
-
AngryDuck almost 10 yearsno problem i remember failing to find this for a while too :)