可以使用QTreeWidgetItem类和QTreeWidget类来添加控件。
- 创建QTreeWidget:
QTreeWidget *treeWidget = new QTreeWidget();
- 添加根节点:
QTreeWidgetItem *rootItem = new QTreeWidgetItem(treeWidget);
rootItem->setText(0, "Root");
- 添加子节点:
QTreeWidgetItem *childItem = new QTreeWidgetItem(rootItem);
childItem->setText(0, "Child");
- 在子节点上添加控件:
QWidget *widget = new QWidget();
QHBoxLayout *layout = new QHBoxLayout(widget);
QPushButton *button = new QPushButton("Button");
layout->addWidget(button);
layout->setAlignment(Qt::AlignCenter);
widget->setLayout(layout);
treeWidget->setItemWidget(childItem, 0, widget);
- 显示QTreeWidget:
treeWidget->show();
完整示例代码:
#include <QApplication>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QWidget>
#include <QPushButton>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTreeWidget *treeWidget = new QTreeWidget();
QTreeWidgetItem *rootItem = new QTreeWidgetItem(treeWidget);
rootItem->setText(0, "Root");
QTreeWidgetItem *childItem = new QTreeWidgetItem(rootItem);
childItem->setText(0, "Child");
QWidget *widget = new QWidget();
QHBoxLayout *layout = new QHBoxLayout(widget);
QPushButton *button = new QPushButton("Button");
layout->addWidget(button);
layout->setAlignment(Qt::AlignCenter);
widget->setLayout(layout);
treeWidget->setItemWidget(childItem, 0, widget);
treeWidget->show();
return a.exec();
}