zoukankan      html  css  js  c++  java
  • 22.Quick QML-FolderListModel模型

    1.FolderListModel介绍
    FolderListModel提供了对本地文件系统中文件夹内容的访问信息,并将文件列表暴露给视图和其他数据组件。
    笔者使用的版本是import Qt.labs.folderlistmodel 2.14

    它的常用属性有:

    • caseSensitive : bool,区分大小写,默认为true
    • count : int,统计当前文件夹中与筛选条件匹配的文件项数,同时,当我们新增或者减少一个文件时,该count也会自动刷新
    • folder : url,保存model当前提供的文件夹的URL。
    • nameFilters : list<string>,文件名筛选器,用来筛选文件夹内容的后缀格式.比如:nameFilters: [ "*.png", "*.jpg" ]
    • parentFolder : url,返回当前文件夹父级的URL
    • rootFolder : url,设置此属性时,给定文件夹将被视为文件系统中的根,因此您只能遍历其中的子文件夹。
    • showDirs : bool,默认为true,如果设置为false,那么model里就不会有文件夹目录
    • showDirsFirst : bool,默认为false.为true时,则model中的目录始终优先排列在最前面,然后才是文件
    • showDotAndDotDot : bool,如果为true,则“.”和“..”的目录将包括在模型中;默认为false。
    • showFiles : bool,默认为true,如果设置为false,那么model里就不会有文件
    • showHidden : bool,默认为false,如果为true,则将隐藏文件和隐藏目录也包括在model中
    • showOnlyReadable : bool,默认为false,如果为true,则仅显示可读文件和目录
    • sortCaseSensitive : bool,默认为true,进行排序大小写,此属性在Qt 5.12中引入。
    • sortField : enumeration,排序方式,取值有以下:
      • Unsorted - no sorting is applied.不进行排序
      • Name - sort by filename,按文件名排序
      • Time - sort by time modified,按修改时间排序
      • Size - sort by file size,按文件大小排序
      • Type - sort by file type (extension),按文件类型排序
    • sortReversed : bool,排序反转,默认为false.不反转
    • status : enumeration ,model状态(文件夹读取状态),取值有以下:
      • FolderListModel.Null - 尚未开始
      • FolderListModel.Ready - 文件夹已加载
      • FolderListModel.Loading - 当前正在加载文件夹

    Methods:

    • var get(index, string property) : 获取第index项的文件夹或者文件的property属性.property取值有以下几种:
      • fileName : 文件名
      • filePath : 文件路径
      • fileURL (since Qt 5.2)
      • fileBaseName : 文件基本名称
      • fileSuffix : 文件后缀
      • fileSize : 文件大小
      • fileModified : 文件已修改
      • fileAccessed : 文件已访问
      • fileIsDir : 文件是否是目录
    • int indexOf(file) : 获取file路径在model中所在的索引号,如果未找到,则返回-1
    • bool isFolder(index) : 判断是否是文件夹


    在使用FolderListModel时,它会提供一个fileName只读属性给视图使用.

    示例如下所示(统计图片文件):

    Column {
            Repeater {
                model: FolderListModel {
                    id: folderModel
                    showDirs: false
                    nameFilters: ["*.png", "*.jpg", "*.gif"]
                    folder: "file:///D:/icon/"
                    onCountChanged: {
                        console.log(count)
                    }
                }
                Text {
                    text: folderModel.folder + fileName
                }
            }
        }

    效果如下所示:

     

     


    人间有真情,人间有真爱。

    如果您喜欢这里,感觉对你有帮助,并且有多余的软妹币的话,不妨投个食吧,赞赏的时候,留下美句和你的博客地址哦~   戳这里看谁投食了


查看全文
  • 相关阅读:
    大数运算
    混合背包问题
    多重背包问题(二进制优化)
    完全背包
    01背包问题
    树状数组
    构建之法阅读笔记04
    第一次冲刺个人总结07
    构建之法阅读笔记03
    第一次冲刺个人总结06
  • 原文地址:https://www.cnblogs.com/lifexy/p/14756469.html
  • Copyright © 2011-2022 走看看