qtcheckbox全选的例程
时间: 2023-10-05 13:11:44 浏览: 87
以下是一个例程,展示了如何使用Qt的QCheckBox实现全选功能:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
QVBoxLayout layout(&window);
// 创建一个全选复选框
QCheckBox checkAll("Select All", &window);
layout.addWidget(&checkAll);
// 创建多个子复选框
QList<QCheckBox*> checkboxes;
for (int i = 1; i <= 5; ++i) {
QCheckBox *checkbox = new QCheckBox(QString("Checkbox %1").arg(i), &window);
layout.addWidget(checkbox);
checkboxes.append(checkbox);
}
QObject::connect(&checkAll, &QCheckBox::stateChanged, [&checkboxes](int state) {
for (QCheckBox *checkbox : checkboxes) {
checkbox->setChecked(state == Qt::Checked);
}
});
window.show();
return app.exec();
}
```
在这个例程中,我们创建一个全选复选框和多个子复选框,并且使用`QObject::connect`连接了全选复选框的`stateChanged`信号和一个Lambda表达式。这个Lambda表达式会遍历所有的子复选框,并将它们的选中状态设置为与全选复选框一致。这样,当全选复选框被选中或取消选中时,所有的子复选框也会跟着改变。
阅读全文