Qt - 如何在保持检查状态的同时禁用QCheckBox?

时间:2014-06-03 13:18:21

标签: c++ qt checkbox dialog signals

我有一个带有两个复选框的对话框,让我们称它们为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保持其状态。提前谢谢!

1 个答案:

答案 0 :(得分:8)

使用函数setEnabled(false)这将禁用但应保持其状态