我有一个带有两个复选框的对话框,让我们称它们为A和B.当未选中A时,B应该能够根据用户的需要进行切换。选中A时,B不应该切换。现在我在对话框的构造函数中有以下内容:
connect(ui->A, SIGNAL(toggled(bool)),
this, SLOT(setBCheckable(bool)));
...然后我有这个功能:
void MyClass::setBCheckable(bool AChecked)
{
if(AChecked)
{
ui->B->setCheckable(false);
}
else
{
ui->B->setCheckable(true);
}
}
然而,当我这样做的时候,我注意到当我点击A时,B将显示APPEAR以保持其状态,但是当我将鼠标移到它上面时(无论A是否仍然被点击,只是下一次我检查A)后鼠标悬停,它刷新B没有被点击。我不能这样做,因为我需要函数来保留B的值,即使B不能被改变。有没有办法做到这一点?总而言之,即使按钮无法切换,我也需要一种方法让QCheckBox保持其状态。提前谢谢!
答案 0 :(得分:8)
使用函数setEnabled(false)
这将禁用但应保持其状态