QTableView生成序号列
时间: 2023-12-29 22:17:12 浏览: 141
如果你想要在QTableView中添加一个序号列,可以使用QTableView的setModel函数设置自定义的QStandardItemModel模型,并在模型中添加一个QStandardItem来存储序号。以下是一个简单的例子:
```c++
QStandardItemModel *model = new QStandardItemModel(this); // 创建QStandardItemModel模型
model->setColumnCount(2); // 设置列数
model->setHeaderData(0, Qt::Horizontal, tr("序号")); // 设置表头标题
tableView->setModel(model); // 将模型设置到QTableView中
for(int i=0; i<10; i++) {
QList<QStandardItem*> rowItems;
QStandardItem *indexItem = new QStandardItem(QString::number(i+1)); // 创建序号QStandardItem
indexItem->setTextAlignment(Qt::AlignCenter); // 设置居中对齐
rowItems << indexItem << new QStandardItem(tr("数据")); // 添加数据项
model->appendRow(rowItems); // 在模型中添加一行
}
tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); // 设置列宽自适应
```
在上面的例子中,我们首先创建了一个QStandardItemModel模型,并设置其列数和表头标题。然后,我们将模型设置到QTableView中,并使用循环添加10行数据,其中每行数据包括一个序号和一个数据项。在每次循环中,我们创建了一个QStandardItem来存储序号,并将其添加到该行的QStandardItem列表中。最后,我们使用`appendRow()`函数将该行添加到模型中。最后,我们使用`horizontalHeader()->setSectionResizeMode()`函数设置列宽自适应,以确保序号列和数据列宽度适当。
运行代码后,你将看到一个带有序号列的QTableView。
阅读全文