Qt - 如何禁用 QCheckBox 但保留已选状态?

9

我有一个对话框,里面有两个复选框,我们称之为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即使按钮不能被切换也保持其选中状态。提前感谢!
1个回答

21

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


1
哇,现在我感觉好蠢啊,我不知道怎么错过了文档中的那个函数 :/ 哈哈。谢谢你的帮助!(等一会儿网站让我操作后,我会标记答案为已接受) - thnkwthprtls
3
没问题,我也记得曾经找了一段时间都没找到 :) - AngryDuck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接