一、QDirModel的基本介绍
QDirModel是 Qt 早期用于显示文件系统(目录、文件)的 QAbstractItemModel 之一,它用于配合 QTreeView 以层级结构显示文件夹和文件。需要注意的是QDirModel 在 Qt 4.6 之后被 QFileSystemModel 取代,不推荐在新项目中使用 QDirModel,应使用 QFileSystemModel 代替。
它们的主要区别:
- QDirModel 会加载所有子目录和文件,导致大量目录时性能较差。
- QFileSystemModel 是懒加载的,不会预加载所有子目录,性能更好。
二、QDirModel的基本使用
2.1 在 QTreeView 中显示文件系统
#include <QApplication>
#include <QTreeView>
#include <QDirModel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建 QDirModel
QDirModel model;
model.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); // 显示所有文件和文件夹
// 创建 QTreeView
QTreeView treeView;
treeView.setModel(&model);
// 设置根目录(桌面路径)
QModelIndex rootIndex = model.index(QDir::homePath());
treeView.setRootIndex(rootIndex);
// 显示窗口
treeView.resize(800, 600);
treeView.show();
return app.exec();
}

2.2 在 QListView 显示当前目录
#include <QApplication>
#include <QListView>
#include <QDirModel>
int main(int argc, char *argv[]) {
QApplication app(argc,<

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



