QT QTableView怎么多表头
时间: 2023-12-29 15:13:54 浏览: 91
QT-qtableview表头添加复选框QHeaderView
在 Qt 中,QTableView 控件的多表头可以通过 QHeaderView 控件来实现。QHeaderView 控件可以设置为水平和垂直两种模式,并且可以在两个方向上同时存在。
下面是一个简单的示例,演示如何在 QTableView 控件中添加多表头:
```cpp
// 创建 QTableView 控件
QTableView* tableView = new QTableView(this);
// 设置数据模型
QStandardItemModel* model = new QStandardItemModel(this);
tableView->setModel(model);
// 添加数据
model->setColumnCount(3);
model->setRowCount(5);
for (int i = 0; i < model->rowCount(); i++) {
for (int j = 0; j < model->columnCount(); j++) {
QModelIndex index = model->index(i, j);
model->setData(index, QString("Cell %1,%2").arg(i).arg(j));
}
}
// 设置水平表头
QHeaderView* horizontalHeader = tableView->horizontalHeader();
horizontalHeader->setSectionsClickable(true);
horizontalHeader->setStyleSheet("QHeaderView::section {"
"background-color:#f0f0f0;"
"border:1px solid #d8d8d8;"
"padding:2px; }");
horizontalHeader->resizeSection(0, 100);
horizontalHeader->resizeSection(1, 150);
horizontalHeader->resizeSection(2, 200);
// 添加竖直表头
QHeaderView* verticalHeader = tableView->verticalHeader();
verticalHeader->setSectionsClickable(true);
verticalHeader->setStyleSheet("QHeaderView::section {"
"background-color:#f0f0f0;"
"border:1px solid #d8d8d8;"
"padding:2px; }");
verticalHeader->resizeSection(0, 50);
verticalHeader->resizeSection(1, 75);
verticalHeader->resizeSection(2, 100);
verticalHeader->resizeSection(3, 125);
verticalHeader->resizeSection(4, 150);
// 将 QTableView 控件添加到布局中
layout->addWidget(tableView);
```
在上面的示例中,首先创建了一个 QTableView 控件和一个数据模型。然后,使用 setColumnCount() 和 setRowCount() 函数设置了表格的行数和列数,并添加了一些示例数据。
接下来,使用 horizontalHeader() 函数获取 QTableView 的水平表头,使用 verticalHeader() 函数获取竖直表头。然后,分别设置表头的样式和大小。
最后,将 QTableView 控件添加到布局中。
通过这种方式,就可以在 QTableView 控件中添加多表头了。
阅读全文