- 类 QFileSystemModel#
QFileSystemModel
类提供了一个本地文件系统数据模型。 ...概要
属性
nameFilterDisables
- 是否隐藏或禁用未通过名称过滤器文件options
- 影响模型的各种选项readOnly
- 目录模型是否允许对文件系统进行写入resolveSymlinks
- 目录模型是否应解析符号链接
方法
def
__init__()
def
fileIcon()
def
fileInfo()
def
fileName()
def
filePath()
def
filter()
定义
index()
定义
isDir()
定义
isReadOnly()
定义
mkdir()
定义
myComputer()
定义
options()
定义
remove()
定义
rmdir()
定义
rootPath()
定义
setFilter()
定义
setOption()
定义
setOptions()
定义
size()
定义
testOption()
定义
type()
信号#
注意
本文档可能包含从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
`- 属性 resolveSymlinksᅟ: bool#
此属性儿决定目录模型是否应解析符号链接。
这仅适用于Windows。
默认情况下,此属性为true。
参见
选项
使用给定的
parent
构造文件系统模型。- directoryLoaded(path)#
- 参数:
path – str
当收集器线程完成加载
path
时,发出此信号。- fileIcon(index)#
- 参数:
index –
QModelIndex
- 返回类型:
返回在给定
index
下模型存储的项的图标。- fileInfo(index)#
- 参数:
index –
QModelIndex
- 返回类型:
返回在给定
index
下模型存储的项的QFileInfo。- fileName(index)#
- 参数:
index –
QModelIndex
- 返回类型:
str
返回特定索引下模型中存储的项目的文件名。
- filePath(index)#
- 参数:
index –
QModelIndex
- 返回类型:
str
返回给定索引下模型中存储的项目的路径。
- fileRenamed(path, oldName, newName)#
- 参数:
path – str
oldName – str
newName – str
每当成功将具有
oldName
的文件重命名为newName
时,都会发出此信号。文件位于path
目录中。返回目录模型中指定的过滤器。
如果没有设置过滤器,则默认过滤器为 QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs。
参见
setFilter()
Filters
- iconProvider()#
返回此目录模型的文件图标提供者。
- index(path[, column=0])#
- 参数:
path – str
column – int
- 返回类型:
这是一个重载函数。
返回给定
path
和column
的模型项索引。- isDir(index)#
- 参数:
index –
QModelIndex
- 返回类型:
bool
如果模型项
index
表示目录,则返回true
;否则返回false
。- isReadOnly()#
- 返回类型:
bool
属性
readOnlyᅟ
的获取器。- lastModified(index)#
- 参数:
index –
QModelIndex
- 返回类型:
返回对代码
index
最后修改的日期和时间(本地时间)。这是一个重载函数,相当于调用
lastModified(index, QTimeZone::LocalTime);
如果
index
无效,将返回默认构造的 QDateTime 对象。- lastModified(index, tz)
- 参数:
index –
QModelIndex
tz –
QTimeZone
- 返回类型:
返回
index
上次修改时在时区tz
中的日期和时间。tz
的典型参数是QTimeZone::UTC
或QTimeZone::LocalTime
。UTC 不需要从本地文件系统 API 返回的时间进行任何转换,因此获取 UTC 时间可能更快。通常在需要向用户展示时间时选择 LocalTime。如果
index
无效,将返回默认构造的 QDateTime 对象。- mkdir(parent, name)#
- 参数:
parent –
QModelIndex
name – str
- 返回类型:
在父模型索引
parent
中创建一个名称为name
的目录。- myComputer([role=Qt.DisplayRole])#
- 参数:
role – int
- 返回类型:
对象
为 "我的电脑" 项返回给定
role
存储的数据。参见
项目数据角色
- nameFilterDisables()#
- 返回类型:
bool
属性
nameFilterDisables
的获取器。- nameFilters()#
- 返回类型:
字符串列表
返回应用于模型中名称的过滤器列表。
- permissions(index)#
- 参数:
index –
QModelIndex
- 返回类型:
Permission
的组合
返回
index
对于 QFile::Permission 的完全 OR 组合。- remove(index)#
- 参数:
index –
QModelIndex
- 返回类型:
bool
从文件系统模型中删除索引为
index
的模型项,并从文件系统中删除对应的文件,如果成功则返回 true。如果项无法删除,则返回 false。- resolveSymlinks()#
- 返回类型:
bool
属性
resolveSymlinks
的获取器。- rmdir(index)#
- 参数:
index –
QModelIndex
- 返回类型:
bool
从文件系统模型中删除与索引为
index
的模型项对应的目录,并从文件系统中删除对应的目录,如果成功则返回 true。如果目录无法删除,则返回 false。当前设置的目录
参见
- rootPath()#
- 返回类型:
str
当前设置的根路径
- rootPathChanged(newPath)#
- 参数:
newPath – 字符串
每当根路径更改为
newPath
时,此信号将被发出。将目录模型的过滤器设置为
filters
指定。注意,您设置的过滤器应始终包括后者 ::AllDirs 枚举值,否则
QFileSystemModel
无法读取目录结构。参见
filter()
Filters
- setIconProvider(provider)#
- 参数:
provider –
QAbstractFileIconProvider
为目录模型设置文件图标的
provider
。- setNameFilterDisables(enable)#
- 参数:
enable – bool
nameFilterDisables 属性的设置器。
- setNameFilters(filters)#
- 参数:
filters – 字符串列表
设置要应用于现有文件的名称
filters
。如果
on
为真,设置给定的option
为启用;否则,清除给定的option
。更改属性之前应设置选项。
- setReadOnly(enable)#
- 参数:
enable – bool
参见
readOnly 属性的设置器。
- setResolveSymlinks(enable)#
- 参数:
enable – bool
resolveSymlinks 属性的设置器。
- setRootPath(path)#
- 参数:
path – str
- 返回类型:
将模型监视的目录设置为
newPath
,通过在其上安装文件系统监视器实现。该目录内文件和目录的任何更改都将反映在模型中。如果路径发生变化,将发出
rootPathChanged()
信号。- size(index)#
- 参数:
index –
QModelIndex
- 返回类型:
int
返回
index
的字节数。如果文件不存在,返回 0。如果给定的
option
已启用,则返回true
;否则,返回false
。- type(index)#
- 参数:
index –
QModelIndex
- 返回类型:
str
返回
index
文件的类型,例如“目录”或“JPEG 文件”。