Qt 互斥复选框

问题描述

我想在 Qt 中创建一组互斥的复选框(没有 Qt Designer 或任何花哨的东西)。使用三个复选框,我可以在操作函数中执行以下操作:

void mainWindow::checkBox1action() {
  // mutual exclusivity
  checkBox2->setChecked(!checkBox1->isChecked());
  checkBox3->setChecked(!checkBox1->isChecked());

  // action for checkBox 1
  ...
}

对于所有其他复选框也是如此。但是,如果有 15 个颜色复选框,此操作将变得非常重复。对于许多复选框,还有其他更好的方法可以做到这一点吗?

解决方法

您可以将复选框添加到 QButtonGroup 中并将其设置为独占。

QButtonGroup *group = new QButtonGroup(this);
group->setExclusive(true);
group->addButton(checkbox1);
group->addButton(checkbox2);

还有 QRadioButton,它在同一个小部件中自动排他。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...