【问题标题】:Qt mutually exclusive checkboxesQt 互斥复选框
【发布时间】:2021-04-04 19:29:33
【问题描述】:

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

void mainWindow::checkbox1action() {
  // mutual exclusivity
  checkbox2->setChecked(!checkbox1->isChecked());
  checkbox3->setChecked(!checkbox1->isChecked());

  // action for checkbox 1
  ...
}

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

【问题讨论】:

  • 是的,它被称为单选按钮。

标签: c++ qt checkbox mutual-exclusion


【解决方案1】:

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

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

还有QRadioButton,在同一个小部件内自动独占。

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 2018-01-02
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 2011-12-26
    • 2011-03-04
    相关资源
    最近更新 更多