FolderListModel QML 类型
FolderListModel 提供了对文件系统文件夹内容的模型的访问,提供了文件列表供视图和其他数据组件使用。更多...
导入声明 | import Qt.labs.folderlistmodel 2.7 |
属性
- 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
文件夹属性指定要访问的文件夹。通过模型的接口提供该文件夹中文件和目录的信息。组件通过以下角色访问名称和路径:
fileName
(字符串
)filePath
(字符串
)fileURL
(url
)(自 Qt 5.2;自 Qt 5.15 已弃用)fileUrl
(url
)(自 Qt 5.15)fileBaseName
(字符串
)fileSuffix
(字符串
)fileSize
(qlonglong
)fileModified
(日期
)fileAccessed
(日期
)fileIsDir
(bool
)
此外,可以通过isFolder() 方法区分文件项和文件夹项。
过滤
可以设置各种属性以过滤模型公开的文件和目录数量。
可以设置nameFilters属性,以包含应用于文件和目录名称的通配符过滤器列表,导致仅公开匹配过滤器的内容。
可以使用showDirs属性包含或排除目录,通过将showDotAndDotDot属性设置为false,可以排除导航目录,使用showHidden属性可以包含或排除隐藏文件。
有时限制公开的文件和目录以仅限于用户可以访问的内容很有用。可以将showOnlyReadable属性设置为启用此功能。
示例用法
以下示例显示了一个用于通过ListView提供 QML 文件列表的 FolderListModel。
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,则在模型中包括目录时,它们总是首先显示,然后是文件。
默认情况下,此属性为false。
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 | 没有设置任何文件夹 |
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的文件夹属性。以下属性是可用的
fileName
(字符串
)filePath
(字符串
)fileURL
(url
)(自 Qt 5.2;自 Qt 5.15 已弃用)fileUrl
(url
)(自 Qt 5.15)fileBaseName
(字符串
)fileSuffix
(字符串
)fileSize
(qlonglong
)fileModified
(日期
)fileAccessed
(日期
)fileIsDir
(bool
)
© 2024 Qt公司有限公司。本说明文档中的文档贡献是各自所有者的版权。本提供的文档是根据自由软件基金会发布的GNU自由文档许可版1.3的条款授权的。Qt及其相关标志是芬兰及/或全球其他国家的Qt公司商标。所有其他商标均为各自所有者的财产。