文章目录
- 一.QFileSystemModel类
- 属性
- 信号
- 函数
- 二.使用说明
一.QFileSystemModel类
属性
- nameFilterDisables : bool 此属性保存未通过名称筛选器的文件是隐藏还是禁用,默认值为true
- options : Options 此属性包含影响模型的各种选项,默认情况下,所有选项均为disabled
- readOnly : bool 此属性保存目录模型是否允许写入文件系统,默认情况下为true
- resolveSymlinks : bool 此属性保存目录模型是否应解析符号链接,默认情况下为true
信号
| 返回值 | 信号 | 说明 |
|---|---|---|
| void | directoryLoaded(const QString &path) | 当gatherer线程完成加载路径时发出此信号 |
| void | fileRenamed(const QString &path, const QString &oldName, const QString &newName) | 每当具有oldName的文件成功重命名为newName时,就会发出此信号。文件位于目录路径中。 |
| void | rootPathChanged(const QString &newPath) | 只要根路径更改为新路径,就会发出此信号 |
函数
| 返回值 | public函数 | 说明 |
|---|---|---|
| QFileSystemModel(QObject *parent = nullptr) | 构造函数 | |
| virtual | ~QFileSystemModel() | 析构函数 |
| QIcon | fileIcon(const QModelIndex &index) const | 返回存储在模型中给定索引下的项的图标。 |
| QFileInfo | fileInfo(const QModelIndex &index) const | 返回存储在模型中给定索引下的项的 QFileInfo。 |
| QString | fileName(const QModelIndex &index) const | 返回存储在模型中给定索引下的项的文件名。 |
| QString | filePath(const QModelIndex &index) const | 返回存储在模型中给定索引下的项的路径。 |
| QDir::Filters | filter() const | 返回为目录模型指定的筛选器。 |
| QAbstractFileIconProvider * | iconProvider() const | 返回此目录模型的文件图标提供程序。 |
| QModelIndex | index(const QString &path, int column = 0) const | 返回由给定行、列和父索引指定的模型中项的索引。 |
| bool | isDir(const QModelIndex &index) const | 如果模型项索引表示目录,则返回true;否则返回false。 |
| bool | isReadOnly() const | 文件是否为只读,如果是则返回true,否则返回false |
| QDateTime | lastModified(const QModelIndex &index) const | 返回上次修改索引的日期和时间。 |
| QModelIndex | mkdir(const QModelIndex &parent, const QString &name) | 使用父模型索引中的名称创建目录。 |
| QVariant | myComputer(int role = Qt::DisplayRole) const | 返回在“我的电脑”项的给定角色下存储的数据。 |
| bool | nameFilterDisables() const | 是否使用过滤器,如果是则返回true,否则返回false |
| QStringList | nameFilters() const | 返回应用于模型中名称的筛选器列表。 |
| QFileSystemModel::Options | options() const | 返回选项 |
| QFile::Permissions | permissions(const QModelIndex &index) const | 返回索引的QFile::Permission的完整OR组合。 |
| bool | remove(const QModelIndex &index) | 从文件系统模型中删除模型项索引,并从文件系统中删除相应的文件,如果成功,则返回true。如果无法删除该项,则返回false。 |
| bool | resolveSymlinks() const | 返回是否应解析符号链接,如果是则返回true,否则返回false |
| bool | rmdir(const QModelIndex &index) | 删除文件系统模型中与模型项索引相对应的目录,并从文件系统中删除相应的目录,如果成功,则返回true。如果无法删除目录,则返回false。 |
| QDir | rootDirectory() const | 当前设置的目录 |
| QString | rootPath() const | 当前设置的根路径 |
| void | setFilter(QDir::Filters filters) | 属性设置 |
| void | setIconProvider(QAbstractFileIconProvider *provider) | 属性设置 |
| void | setNameFilterDisables(bool enable) | 属性设置 |
| void | setNameFilters(const QStringList &filters) | 属性设置 |
| void | setOption(QFileSystemModel::Option option, bool on = true) | 属性设置 |
| void | setOptions(QFileSystemModel::Options options) | 属性设置 |
| void | setReadOnly(bool enable) | 属性设置 |
| void | setResolveSymlinks(bool enable) | 属性设置 |
| QModelIndex | setRootPath(const QString &newPath) | 属性设置 |
| qint64 | size(const QModelIndex &index) const | 返回索引的大小(字节)。如果文件不存在,则返回0。 |
| bool | testOption(QFileSystemModel::Option option) const | 如果给定选项已启用,则返回true;否则,返回false。 |
| QString | type(const QModelIndex &index) const | 返回文件索引的类型,如“目录”或“JPEG文件”。 |
| 返回值 | Reimplemented Public函数 | 说明 |
|---|---|---|
| virtual bool | canFetchMore(const QModelIndex &parent) const override | 如果父级有更多可用数据,则返回true;否则返回false。 |
| virtual int | columnCount(const QModelIndex &parent = QModelIndex()) const override | 返回给定父级的子级的列数。 |
| virtual QVariant | data(const QModelIndex &index, int role = Qt::DisplayRole) const override | 返回存储在给定角色下的索引所引用项的数据。 |
| virtual bool | dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override | 处理以给定操作结束的拖放操作提供的数据。 如果数据和操作由模型处理,则返回true;否则返回false。 |
| virtual void | fetchMore(const QModelIndex &parent) override | 获取具有父索引指定的父项的项目的任何可用数据。 |
| virtual Qt::ItemFlags | flags(const QModelIndex &index) const override | 返回给定索引的项标志。 |
| virtual bool | hasChildren(const QModelIndex &parent = QModelIndex()) const override | 如果父级有任何子级,则返回true;否则返回false。 |
| virtual QVariant | headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override | 返回具有指定方向的标头中给定角色和节的数据。 |
| virtual QModelIndex | index(int row, int column, const QModelIndex &parent = QModelIndex()) const override | 返回由给定行、列和父索引指定的模型中项的索引。 |
| virtual QMimeData * | mimeData(const QModelIndexList &indexes) const override | 返回包含指定索引的序列化描述的对象。 |
| virtual QStringList | mimeTypes() const override | 返回可用于描述模型中项目列表的MIME类型列表。 |
| virtual QModelIndex | parent(const QModelIndex &index) const override | 返回父级指针 |
| virtual QHash<int, QByteArray> | roleNames() const override | 返回模型的角色名称。 |
| virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override | 返回给定父级的子级的行数。 |
| virtual bool | setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole) override | 属性设置 |
| virtual QModelIndex | sibling(int row, int column, const QModelIndex &idx) const override | 返回索引处项的行和列的同级项,如果该位置没有同级项,则返回无效的QModelIndex。 |
| virtual void | sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override | 按给定顺序按列对模型排序。 |
| virtual Qt::DropActions | supportedDropActions() const override | 返回此模型中数据支持的操作。 |
二.使用说明
QFileSystemModel *model = new QFileSystemModel; //创建QFileSystemModel对象
model->setRootPath(QDir::currentPath()); //设置QFileSystemModel中所要显示的文件目录
QTreeView *tree = new QTreeView(splitter); //创建一个QTreeView用来显示QFileSystemModel的内容
tree->setModel(model); //QTreeView绑定模型

ui->fileTreeView->setRootIndex(model->index(model->rootPath())); //设置显示指定位置的目录




















