QT利用QTreeWidget显示文件夹中的所有子文件夹和文件,并把文件夹设置为根节点,把文件设置为其所在文件夹的子节点,请给我完整代码
时间: 2024-02-03 16:13:20 浏览: 58
QT treeWidget 加载指定路径所有文件夹和文件
以下是一个简单的示例程序,它可以利用QTreeWidget显示文件夹中的所有子文件夹和文件:
```cpp
#include <QApplication>
#include <QDir>
#include <QFileInfo>
#include <QTreeWidget>
#include <QTreeWidgetItem>
void addSubDirs(QTreeWidgetItem *parent, const QString &path) {
QDir dir(path);
foreach (QFileInfo info, dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot)) {
QTreeWidgetItem *item = new QTreeWidgetItem(parent, QStringList(info.fileName()));
addSubDirs(item, info.filePath());
}
foreach (QFileInfo info, dir.entryInfoList(QDir::Files)) {
new QTreeWidgetItem(parent, QStringList(info.fileName()));
}
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QString path = "C:/"; // 设置文件夹路径
QTreeWidget tree;
tree.setHeaderLabels(QStringList() << "Name"); // 设置表头
addSubDirs(&tree, path); // 添加子文件夹和文件
tree.expandAll(); // 展开所有节点
tree.show();
return app.exec();
}
```
这个程序首先创建了一个QTreeWidget对象,然后调用addSubDirs函数来添加子文件夹和文件。该函数递归地遍历了文件夹中的所有子文件夹和文件,并将它们添加到树形控件中。最后,程序展开了所有的节点,并显示了树形控件。
阅读全文