FolderListModel QML Type
FolderListModel 提供了文件系统文件夹内容的模型。更多
Import Statement: | import Qt.labs.folderlistmodel 2.9 |
属性
- caseSensitive : bool
- count : int
- folder : url
- nameFilters : list<string>
- parentFolder : url
- rootFolder : url
- showDirs : bool
- showDirsFirst : bool
- showDotAndDotDot : bool
- showFiles : bool
- showHidden : bool
- showOnlyReadable : bool
- sortCaseSensitive : bool
- sortField : enumeration
- sortReversed : bool
- status : enumeration
方法
详细描述
FolderListModel 可访问本地文件系统中文件夹的内容信息,向视图和其他数据组件提供文件列表。
注意: 该类型通过导入Qt.labs.folderlistmodel
模块可用。Qt.labs 模块中的元素不保证在未来版本中保持兼容。
注: FolderListModel 中的某些功能依赖于QFileSystemWatcher 。如果QFileSystemWatcher 被禁用,使用setFolder
设置的文件夹将不会被监视更改,这将导致通常在目录更改时发出的信号(如 directoryUpdated 或 directoryChanged)无法在不再次手动调用setFolder
的情况下发出。更多信息,请参阅Qt 配置选项。
import Qt.labs.folderlistmodel
folder 属性指定了要访问的文件夹。文件夹中的文件和目录信息通过模型接口提供。组件通过以下角色访问名称和路径:
fileName
( )string
filePath
( )string
fileURL
( ) (自 Qt 5.2 起;自 Qt 5.15 起已废弃)url
fileUrl
( ) (自 Qt 5.15 起弃用)url
fileBaseName
( )string
fileSuffix
( )string
fileSize
( )qlonglong
fileModified
( )date
fileAccessed
( )date
fileIsDir
( )bool
此外,还可以通过isFolder() 方法将文件条目与文件夹条目区分开来。
过滤
可以设置各种属性来过滤模型显示的文件和目录数量。
nameFilters 属性可设置为包含通配符过滤器列表,应用于文件和目录的名称,只暴露那些与过滤器匹配的文件和目录。
可以使用showDirs 属性包含或排除目录,也可以通过将showDotAndDotDot 属性设置为 false 来排除导航目录,还可以使用showHidden 属性包含或排除隐藏文件。
有时,将暴露的文件和目录限制为用户可以访问的文件和目录会很有用。可以设置showOnlyReadable 属性来启用这一功能。
使用示例
下面的示例显示了 FolderListModel 用于提供ListView 中的 QML 文件列表:
import QtQuick import Qt.labs.folderlistmodel ListView { width: 200; height: 400 FolderListModel { id: folderModel nameFilters: ["*.qml"] } Component { id: fileDelegate required property string fileName Text { text: fileName } } model: folderModel delegate: fileDelegate }
路径分隔符
Qt 使用"/"作为通用目录分隔符,就像 URL 中使用"/"作为路径分隔符一样。如果您总是使用"/"作为目录分隔符,Qt 将翻译您的路径以符合底层操作系统。
另请参阅 QML 数据模型。
属性文档
caseSensitive : bool |
使用大小写敏感的模式匹配。
默认情况下,此属性为 true。
count : int |
返回当前文件夹中符合筛选条件的条目的数量。
folder : url |
nameFilters 属性包含文件名过滤器列表。过滤器可包括 ? 和 * 通配符。
下面的示例过滤了 PNG 和 JPEG 文件:
FolderListModel { nameFilters: [ "*.png", "*.jpg" ] }
注意: 过滤器不排除目录。
rootFolder : url |
设置此属性后,给定文件夹将被视为文件系统的根目录,因此只能遍历其中的子文件夹。
showDirs : bool |
showDirsFirst : bool |
如果为 "true",如果模型中包含目录,则总是先显示目录,然后显示文件。
默认情况下,此属性为假。
showDotAndDotDot : bool |
showHidden : bool |
如果为 true,模型中将包含隐藏的文件和目录;否则将排除它们。
默认情况下,此属性为 false。
sortCaseSensitive : bool |
如果设置为true
,则排序区分大小写。该属性默认为true
。
sortField : enumeration |
sortField 属性包含用于排序的字段。sortField
可以是其中之一:
常量 | 说明 |
---|---|
FolderListModel.Unsorted | 不应用排序 |
FolderListModel.Name | 按文件名排序(默认) |
FolderListModel.Time | 按修改时间排序 |
FolderListModel.Size | 按文件大小排序 |
FolderListModel.Type | 按文件类型/扩展名排序 |
另请参阅 sortReversed 。
status : enumeration |
该属性用于保存文件夹的读取状态。它可以是
常量 | 说明 |
---|---|
FolderListModel.Null | 未设置folder |
FolderListModel.Ready | 文件夹已加载 |
FolderListModel.Loading | 文件夹正在加载 |
使用此状态可提供更新或以某种方式响应状态变化。例如,您可以
- 触发状态更改:
State { name: 'loaded'; when: folderModel.status == FolderListModel.Ready }
- 执行
onStatusChanged
信号处理器:FolderListModel { id: folderModel onStatusChanged: if (folderModel.status == FolderListModel.Ready) console.log('Loaded') }
- 绑定状态值:
Text { text: folderModel.status == FolderListModel.Ready ? 'Loaded' : 'Not loaded' }
方法文档
返回给定index 的文件夹property 。可使用以下属性:
fileName
( )string
filePath
( )string
fileURL
( ) (自 Qt 5.2 起;自 Qt 5.15 起已弃用)url
fileUrl
( ) (自 Qt 5.15 起)url
fileBaseName
( )string
fileSuffix
( )string
fileSize
( )qlonglong
fileModified
( )date
fileAccessed
( )date
fileIsDir
( )bool
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.