QFileSystemModel#

QFileSystemModel 类提供了一个本地文件系统数据模型。  ...

Inheritance diagram of PySide6.QtWidgets.QFileSystemModel

概要

属性

  • nameFilterDisables - 是否隐藏或禁用未通过名称过滤器文件

  • options - 影响模型的各种选项

  • readOnly - 目录模型是否允许对文件系统进行写入

  • resolveSymlinks - 目录模型是否应解析符号链接

方法

信号#

注意

本文档可能包含从C++自动转换为Python的代码片段。我们始终欢迎为代码片段翻译做出贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单的方式告知我们。

详细描述#

警告

本节包含从C++自动转换为Python的代码片段,可能包含错误。

此类提供对本地文件系统的访问,提供用于重命名和删除文件和目录,以及创建新目录的函数。在最简单的情况下,它可以与合适的显示小部件一起用作浏览器或过滤器的一部分。

QFileSystemModel 可以通过QAbstractItemModel提供的标准接口访问,但它还提供了一些特定于目录模型的便捷函数。函数 fileInfo()isDir()fileName()filePath() 可以获取与模型中的项目相关联的底层文件和目录信息。可以通过使用 mkdir()rmdir() 来创建和删除目录。

注意

QFileSystemModel 需要一个QApplication实例。

示例用法#

通常使用父对象构建一个显示默认目录内容的目录模型

    model = QFileSystemModel()
    model.setRootPath(QDir.currentPath())
if __name__ == "__main__":

    app = QApplication([])
    splitter = QSplitter()

可以使用树状视图显示模型的内容

tree = QTreeView(splitter)
tree.setModel(model)

通过设置树状视图的根索引,可以显示特定目录的内容

tree.setRootIndex(model.index(QDir.currentPath()))

视图的根索引可以用来控制显示层次模型的部分。`QFileSystemModel`提供了一个便利函数,该函数可以返回模型中目录路径的合适模型索引。

缓存和性能#

`QFileSystemModel`直到调用`setRootPath()`之前不会检索任何文件或目录。这将防止在此点之前对文件系统进行不必要的查询,例如在Windows上列出驱动器。

`QFileSystemModel`使用单独的线程来填充自身的文件信息,因此它不会在查询文件系统时使主线程挂起。在模型填充目录之前,对`rowCount()`的调用将返回0。

`QFileSystemModel`保留一个包含文件信息的缓存。它使用`QFileSystemWatcher`自动更新缓存。

参见

模型类

class Roles#

常量

描述

`QFileSystemModel.FileIconRole`

`QFileSystemModel.FilePathRole`

`QFileSystemModel.FileNameRole`

`QFileSystemModel.FilePermissions`

class Option#

常量

描述

`QFileSystemModel.DontWatchForChanges`

(继承自`enum.Flag`) 不要向路径添加文件监视器。这在使用模型进行简单任务(如行编辑完成)时可以减少开销。

`QFileSystemModel.DontResolveSymlinks`

在文件系统模型中不解析符号链接。默认情况下会解析符号链接。

`QFileSystemModel.DontUseCustomDirectoryIcons`

始终使用默认目录图标。某些平台允许用户设置不同的图标。自定义图标查找在网络或可移动驱动器上会对性能产生很大影响。这将在图标提供程序中相应地设置`QFileIconProvider::DontUseCustomDirectoryIcons`选项。

注意

可以直接使用`from __feature__ import true_property`时使用属性,否则通过访问函数使用。

property nameFilterDisablesᅟ: bool#

该属性表示未通过名称筛选器的文件是隐藏的还是禁用的。

默认情况下该属性为`true`

访问函数
属性 optionsᅟ: QAbstractFileIconProvider.Option 的组合#

此属性持有关联到模型的各种选项。

默认情况下,所有选项都未启用。

更改属性之前应设置选项。

访问函数
属性 readOnlyᅟ: bool#

此属性会儿决定目录模型是否允许向文件系统写入。

如果将其设置为false,目录模型将允许重命名、复制和删除文件和目录。

默认情况下该属性为`true`

访问函数

此属性儿决定目录模型是否应解析符号链接。

这仅适用于Windows。

默认情况下,此属性为true。

参见

选项

访问函数
__init__([parent=None])#
参数:

parentQObject

使用给定的parent构造文件系统模型。

directoryLoaded(path)#
参数:

path – str

当收集器线程完成加载path时,发出此信号。

fileIcon(index)#
参数:

indexQModelIndex

返回类型:

QIcon

返回在给定index下模型存储的项的图标。

fileInfo(index)#
参数:

indexQModelIndex

返回类型:

QFileInfo

返回在给定index下模型存储的项的QFileInfo。

fileName(index)#
参数:

indexQModelIndex

返回类型:

str

返回特定索引下模型中存储的项目的文件名。

filePath(index)#
参数:

indexQModelIndex

返回类型:

str

返回给定索引下模型中存储的项目的路径。

fileRenamed(path, oldName, newName)#
参数:
  • path – str

  • oldName – str

  • newName – str

每当成功将具有 oldName 的文件重命名为 newName 时,都会发出此信号。文件位于 path 目录中。

filter()#
返回类型:

Filter 的组合

返回目录模型中指定的过滤器。

如果没有设置过滤器,则默认过滤器为 QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs。

参见

setFilter() Filters

iconProvider()#
返回类型:

QAbstractFileIconProvider

返回此目录模型的文件图标提供者。

index(path[, column=0])#
参数:
  • path – str

  • column – int

返回类型:

QModelIndex

这是一个重载函数。

返回给定 pathcolumn 的模型项索引。

isDir(index)#
参数:

indexQModelIndex

返回类型:

bool

如果模型项 index 表示目录,则返回 true;否则返回 false

isReadOnly()#
返回类型:

bool

属性 readOnlyᅟ 的获取器。

lastModified(index)#
参数:

indexQModelIndex

返回类型:

QDateTime

返回对代码 index 最后修改的日期和时间(本地时间)。

这是一个重载函数,相当于调用

lastModified(index, QTimeZone::LocalTime);

如果 index 无效,将返回默认构造的 QDateTime 对象。

lastModified(index, tz)
参数:
返回类型:

QDateTime

返回 index 上次修改时在时区 tz 中的日期和时间。

tz 的典型参数是 QTimeZone::UTCQTimeZone::LocalTime。UTC 不需要从本地文件系统 API 返回的时间进行任何转换,因此获取 UTC 时间可能更快。通常在需要向用户展示时间时选择 LocalTime。

如果 index 无效,将返回默认构造的 QDateTime 对象。

mkdir(parent, name)#
参数:
返回类型:

QModelIndex

在父模型索引 parent 中创建一个名称为 name 的目录。

myComputer([role=Qt.DisplayRole])#
参数:

role – int

返回类型:

对象

为 "我的电脑" 项返回给定 role 存储的数据。

参见

项目数据角色

nameFilterDisables()#
返回类型:

bool

属性 nameFilterDisables 的获取器。

nameFilters()#
返回类型:

字符串列表

返回应用于模型中名称的过滤器列表。

options()#
返回类型:

Option 的组合

参见

setOptions()

permissions(index)#
参数:

indexQModelIndex

返回类型:

Permission 的组合

返回 index 对于 QFile::Permission 的完全 OR 组合。

remove(index)#
参数:

indexQModelIndex

返回类型:

bool

从文件系统模型中删除索引为 index 的模型项,并从文件系统中删除对应的文件,如果成功则返回 true。如果项无法删除,则返回 false。

警告

该函数从文件系统中删除文件;它不会将文件移动到可以恢复的位置。

参见

rmdir()

resolveSymlinks()#
返回类型:

bool

属性 resolveSymlinks 的获取器。

rmdir(index)#
参数:

indexQModelIndex

返回类型:

bool

从文件系统模型中删除与索引为 index 的模型项对应的目录,并从文件系统中删除对应的目录,如果成功则返回 true。如果目录无法删除,则返回 false。

警告

该函数从文件系统中删除目录;它不会将目录移动到可以恢复的位置。

参见

remove()

rootDirectory()#
返回类型:

QDir

当前设置的目录

参见

rootPath()

rootPath()#
返回类型:

str

当前设置的根路径

rootPathChanged(newPath)#
参数:

newPath – 字符串

每当根路径更改为 newPath 时,此信号将被发出。

setFilter(filters)#
参数:

filtersFilter 的组合

将目录模型的过滤器设置为 filters 指定。

注意,您设置的过滤器应始终包括后者 ::AllDirs 枚举值,否则 QFileSystemModel 无法读取目录结构。

参见

filter() Filters

setIconProvider(provider)#
参数:

providerQAbstractFileIconProvider

为目录模型设置文件图标的 provider

setNameFilterDisables(enable)#
参数:

enable – bool

nameFilterDisables 属性的设置器。

setNameFilters(filters)#
参数:

filters – 字符串列表

设置要应用于现有文件的名称 filters

参见

nameFilters()

setOption(option[, on=true])#
参数:
  • optionOption

  • on – bool

如果 on 为真,设置给定的 option 为启用;否则,清除给定的 option

更改属性之前应设置选项。

setOptions(options)#
参数:

optionsOption 组合

参见

options()

setReadOnly(enable)#
参数:

enable – bool

参见

isReadOnly()

readOnly 属性的设置器。

参数:

enable – bool

resolveSymlinks 属性的设置器。

setRootPath(path)#
参数:

path – str

返回类型:

QModelIndex

将模型监视的目录设置为 newPath,通过在其上安装文件系统监视器实现。该目录内文件和目录的任何更改都将反映在模型中。

如果路径发生变化,将发出 rootPathChanged() 信号。

注意

此函数不会更改模型的结构或修改视图可用的数据。换句话说,模型的“根”不会被改为此文件系统中指定为 newPath 的目录内的文件和目录。

参见

rootPath()

size(index)#
参数:

indexQModelIndex

返回类型:

int

返回 index 的字节数。如果文件不存在,返回 0。

testOption(option)#
参数:

optionOption

返回类型:

bool

如果给定的 option 已启用,则返回 true;否则,返回 false

type(index)#
参数:

indexQModelIndex

返回类型:

str

返回 index 文件的类型,例如“目录”或“JPEG 文件”。