在 Qt 中,用于树状显示的控件是 QTreeView
。这个控件可以用来展示层次结构的数据,比如文件系统、分类数据等。
1. 使用 QTreeView
下面是一个简单的示例,演示如何使用 QTreeView
显示一些层次结构数据:
#include <QApplication>
#include <QTreeView>
#include <QStringListModel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建树视图
QTreeView treeView;
// 创建一个模型
QStringListModel model;
// 设置层级数据
QStringList items;
items << "Item 1" << "Item 2" << "Item 3";
// 为模型设置数据(注意:需要实现分级结构)
model.setStringList(items);
treeView.setModel(&model);
// 显示树视图
treeView.show();
return app.exec();
}
2. 更复杂的数据结构
通常,你会使用自定义模型继承自 QAbstractItemModel
或者 QStandardItemModel
来构建更复杂的树形结构。例如,使用 QStandardItemModel
可以更方便地创建和管理具有多级嵌套项的树形结构。
示例:使用 QStandardItemModel
#include <QApplication>
#include <QTreeView>
#include <QStandardItemModel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QTreeView treeView;
// 创建标准项模型
QStandardItemModel model;
// 设置表头
model.setHorizontalHeaderLabels(QStringList() << "Name");
// 添加根节点
QStandardItem *rootItem = model.invisibleRootItem();
// 添加子项
QStandardItem *item1 = new QStandardItem("Fruit");
rootItem->appendRow(item1);
item1->appendRow(new QStandardItem("Apple"));
item1->appendRow(new QStandardItem("Banana"));
QStandardItem *item2 = new QStandardItem("Vegetables");
rootItem->appendRow(item2);
item2->appendRow(new QStandardItem("Carrot"));
item2->appendRow(new QStandardItem("Peas"));
treeView.setModel(&model);
treeView.show();
return app.exec();
}
总结
QTreeView
是用于展示树状数据的控件。- 一般配合 模型(如
QStringListModel
,QStandardItemModel
, 或者自定义模型)来提供数据。 - 可以通过添加子项形成多层次的结构。
希望这些信息能帮助你开始使用 Qt 的树状显示功能!如果有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问