和 Python 的实现类似,可以将 QTreeWidget 放置在一个 QScrollArea 中。C++ 代码如下:
#include <QApplication>
#include <QMainWindow>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QScrollArea>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QMainWindow window;
window.setWindowTitle("QTreeWidget with QScrollArea");
// 创建 QTreeWidget
QTreeWidget* tree_widget = new QTreeWidget(&window);
tree_widget->setHeaderLabels({"Name", "Age"});
// 添加子项
QTreeWidgetItem* parent_item = new QTreeWidgetItem(tree_widget);
parent_item->setText(0, "Parent");
parent_item->setText(1, "50");
QTreeWidgetItem* child_item = new QTreeWidgetItem(parent_item);
child_item->setText(0, "Child");
child_item->setText(1, "20");
// 将 tree_widget 放置在一个滚动区域中
QScrollArea* scroll_area = new QScrollArea(&window);
scroll_area->setWidgetResizable(true);
scroll_area->setWidget(tree_widget);
window.setCentralWidget(scroll_area);
window.show();
return app.exec();
}
运行后会显示一个带有滚动条的窗口,其中包含了一个树形控件。