一、效果
二、设计思路
三、概略代码
//============= 第一层QTreeWidget ==================//
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
//获取顶级节点
QTreeWidgetItem *parentItem = ui->treeWidget->topLevelItem(0);
//创建子节点
QTreeWidgetItem *newItem = new QTreeWidgetItem(parentItem);
//设置子节点跨越所有列(PS:否则它的宽度只有第一列的宽度)
newItem->setFirstColumnSpanned(true);
//初始化 待嵌套的 widget
CustomWidget *widget = new CustomWidget(this);
//设置 QTreeWidget 嵌套 widget
ui->treeWidget->setItemWidget(newItem, 0, widget);
}
//============= 第二层QTreeWidget ==================//
```cpp
CustomWidget::CustomWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::CustomWidget)
{
ui->setupUi(this);
//获取顶级节点
QTreeWidgetItem *parentItem = ui->treeWidget->topLevelItem(0);
//创建子节点
QTreeWidgetItem *newItem = new QTreeWidgetItem(parentItem);
//初始化 待嵌套的 widget(CustomTableWidget 上面放了一个 QTableView)
CustomTableWidget *widget = new CustomTableWidget(this);
//设置 QTreeWidget 嵌套 widget
ui->treeWidget->setItemWidget(newItem, 0, widget);
}