【发布时间】: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