我有一个对话框,里面有两个复选框,我们称之为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会保持其状态,但是当我将鼠标移动到它上面时(无论A是否仍然被点击,只要在检查A之后的下一次移动鼠标时),它会刷新为未被选中。我不能让它这样做,因为我需要函数保留B的值,即使B不能更改。有没有办法做到这一点?总之,我需要一种方法让QCheckBox即使按钮不能被切换也保持其选中状态。提前感谢!