Qt互斥复选框
Qt mutually exclusive checkboxes
我想在 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,在同一个widget内自动排他
我想在 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,在同一个widget内自动排他