【问题标题】:Qt - How to disable QCheckBox while retaining checked state?Qt - 如何在保持选中状态的同时禁用 QCheckBox?
【发布时间】:2014-07-23 20:29:14
【问题描述】:

我有一个带有两个复选框的对话框,我们称它们为 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 无法更改,我也需要该函数来保留 B 的值。有没有办法做到这一点?总而言之,即使无法切换按钮,我也需要一种方法让 QCheckBox 保持其检查状态。提前致谢!

【问题讨论】:

    标签: c++ qt checkbox dialog signals


    【解决方案1】:

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

    【讨论】:

    • 哇,我现在感觉很笨,我不知道我是怎么错过文档中的那个功能的:/哈哈。谢谢你的帮助! (一旦网站允许,我会在几分钟内将答案标记为已接受)
    • 没问题,我记得有一段时间没找到这个:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多