Qt通过数据生成TreeWiget
时间: 2024-06-12 14:05:45 浏览: 7
一、背景
在Qt中,可以使用QTreeWidget控件实现树形结构展示。如果需要将一些数据按照层级关系展示出来,可以通过数据生成QTreeWidget。
二、实现步骤
1.创建QTreeWidget对象
```cpp
QTreeWidget *treeWidget = new QTreeWidget();
```
2.设置列数和表头
```cpp
treeWidget->setColumnCount(2); //设置列数
treeWidget->setHeaderLabels(QStringList() << "Name" << "Value"); //设置表头
```
3.添加根节点
```cpp
QTreeWidgetItem *root = new QTreeWidgetItem(treeWidget);
root->setText(0, "root");
root->setText(1, "");
```
4.添加子节点
```cpp
QTreeWidgetItem *child = new QTreeWidgetItem(root);
child->setText(0, "child");
child->setText(1, "value");
```
5.添加孙子节点
```cpp
QTreeWidgetItem *grandChild = new QTreeWidgetItem(child);
grandChild->setText(0, "grandChild");
grandChild->setText(1, "value");
```
6.将QTreeWidget添加到窗口中
```cpp
QVBoxLayout *layout = new QVBoxLayout(); //创建布局管理器
layout->addWidget(treeWidget); //将QTreeWidget添加到布局管理器中
setLayout(layout); //将布局管理器设置为窗口的布局管理器
```
三、完整代码
```cpp
#include <QTreeWidget>
#include <QVBoxLayout>
void MainWindow::generateTreeWidget()
{
QTreeWidget *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(2);
treeWidget->setHeaderLabels(QStringList() << "Name" << "Value");
QTreeWidgetItem *root = new QTreeWidgetItem(treeWidget);
root->setText(0, "root");
root->setText(1, "");
QTreeWidgetItem *child = new QTreeWidgetItem(root);
child->setText(0, "child");
child->setText(1, "value");
QTreeWidgetItem *grandChild = new QTreeWidgetItem(child);
grandChild->setText(0, "grandChild");
grandChild->setText(1, "value");
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(treeWidget);
setLayout(layout);
}
```