我需要连接一些复选框,所以当我点击一个时,它会被检查,而其他复选框会被取消选中。我的代码现在看起来像这样。复选框更改其他复选框语句
Connect在类的构造函数:
connect(cb_thickness1,SIGNAL(stateChanged(int)),this,SLOT(cb_thickness1_isChecked()));
connect(cb_thickness2,SIGNAL(stateChanged(int)),this,SLOT(cb_thickness2_isChecked()));
connect(cb_thickness3,SIGNAL(stateChanged(int)),this,SLOT(cb_thickness3_isChecked()));
和插槽
void MainWind::cb_thickness1_isChecked()
{
if(cb_thickness2->isChecked())
cb_thickness2->setChecked(false);
if(cb_thickness3->isChecked())
cb_thickness3->setChecked(false);
}
void MainWind::cb_thickness2_isChecked()
{
if(cb_thickness1->isChecked())
cb_thickness1->setChecked(false);
if(cb_thickness3->isChecked())
cb_thickness3->setChecked(false);
}
void MainWind::cb_thickness3_isChecked()
{
if(cb_thickness1->isChecked())
cb_thickness1->setChecked(false);
if(cb_thickness2->isChecked())
cb_thickness2->setChecked(false);
}
代码不能按预期工作。当我第一次点击任何ChBx时,一切正常,但是当我下次点击其他时,它只会取消选中之前的内容,而对本身不做任何处理。只有在第二次点击它变得chekced。
另外我还发现一个bug,当我检查ChBox,然后通过单击它来取消选中它时,我可以检查2个ChBxes。 [图2]
为什么不使用[单选按钮](http://doc.qt.io/qt- 5/qradiobutton.html)是哪种设计用途? – Garf365
我没有尝试使用单选按钮,但这是个好主意,谢谢。 –