QTableView添加checkbox的示例 C++语言
时间: 2023-07-21 13:05:04 浏览: 179
以下是一个简单的示例代码,演示如何在QTableView中添加复选框:
```
// 创建一个QStandardItemModel作为数据模型
QStandardItemModel *model = new QStandardItemModel(this);
// 添加表头
model->setHorizontalHeaderItem(0, new QStandardItem("Name"));
model->setHorizontalHeaderItem(1, new QStandardItem("Age"));
model->setHorizontalHeaderItem(2, new QStandardItem("Select"));
// 添加数据行,每行数据包括姓名、年龄和一个复选框
for (int i = 0; i < 5; i++) {
QList<QStandardItem *> rowItems;
rowItems.append(new QStandardItem(QString("Name %1").arg(i)));
rowItems.append(new QStandardItem(QString("%1").arg(i * 10)));
rowItems.append(new QStandardItem());
rowItems.last()->setCheckable(true);
model->appendRow(rowItems);
}
// 创建QTableView并将数据模型设置为其模型
QTableView *tableView = new QTableView(this);
tableView->setModel(model);
// 设置第三列为复选框列
tableView->setColumnWidth(2, 80);
tableView->setItemDelegateForColumn(2, new QStyledItemDelegate());
tableView->setIndexWidget(model->index(0, 2), new QCheckBox());
// 显示QTableView
tableView->show();
```
这个示例中,我们使用QStandardItemModel作为数据模型,并在其中添加了三列数据:姓名、年龄和一个复选框。我们使用一个循环来添加五行数据。在添加每行数据时,我们创建一个QList<QStandardItem *>,将每个单元格的QStandardItem对象添加到其中,然后将其添加到模型中。为了使第三列显示复选框,我们使用setItemDelegateForColumn()方法将第三列的项委托设置为空QStyledItemDelegate,然后使用setIndexWidget()方法将第一个单元格的QCheckBox对象设置为该单元格的小部件。
希望这可以帮助你开始使用QTableView添加复选框。
阅读全文