QTableView实现表格树
时间: 2023-12-29 11:22:09 浏览: 158
QTableView使用示例-Qt模型视图代理(Model-View-Delegate)使用示例
要实现QTableView的表格树功能,可以使用QStandardItemModel作为数据模型,并在数据模型中设置每个项的parent()和child()来表示树形结构,然后将QStandardItemModel设置给QTableView即可。
以下是一个简单的示例代码:
```
// 创建数据模型
QStandardItemModel *model = new QStandardItemModel();
model->setColumnCount(2);
// 设置根节点
QStandardItem *rootItem = model->invisibleRootItem();
rootItem->setData("Root", Qt::DisplayRole);
// 添加子节点
QStandardItem *parentItem = new QStandardItem("Parent");
parentItem->setData("Parent", Qt::DisplayRole);
rootItem->appendRow(parentItem);
QStandardItem *childItem1 = new QStandardItem("Child 1");
childItem1->setData("Child 1", Qt::DisplayRole);
parentItem->appendRow(childItem1);
QStandardItem *childItem2 = new QStandardItem("Child 2");
childItem2->setData("Child 2", Qt::DisplayRole);
parentItem->appendRow(childItem2);
// 设置QTableView
QTableView *tableView = new QTableView(parent);
tableView->setModel(model);
tableView->setColumnWidth(0, 200);
tableView->setColumnWidth(1, 200);
tableView->setRootIndex(rootItem->index());
```
在这个示例中,我们使用QStandardItemModel创建了一个树形结构,然后将它设置给QTableView。最后,我们使用setRootIndex()函数将根节点设置为QTableView的根索引,这样QTableView就可以显示表格树了。
阅读全文