Qt QFileSystemModel类详解

一.QFileSystemModel类

属性

  • nameFilterDisables : bool 此属性保存未通过名称筛选器的文件是隐藏还是禁用,默认值为true
  • options : Options 此属性包含影响模型的各种选项,默认情况下,所有选项均为disabled
  • readOnly : bool 此属性保存目录模型是否允许写入文件系统,默认情况下为true
  • resolveSymlinks : bool 此属性保存目录模型是否应解析符号链接,默认情况下为true

信号

返回值信号说明
voiddirectoryLoaded(const QString &path)当gatherer线程完成加载路径时发出此信号
voidfileRenamed(const QString &path, const QString &oldName, const QString &newName)每当具有oldName的文件成功重命名为newName时,就会发出此信号。文件位于目录路径中。
voidrootPathChanged(const QString &newPath)只要根路径更改为新路径,就会发出此信号

函数

返回值public函数说明
QFileSystemModel(QObject *parent = nullptr)构造函数
virtual~QFileSystemModel()析构函数
QIconfileIcon(const QModelIndex &index) const返回存储在模型中给定索引下的项的图标。
QFileInfofileInfo(const QModelIndex &index) const返回存储在模型中给定索引下的项的 QFileInfo
QStringfileName(const QModelIndex &index) const返回存储在模型中给定索引下的项的文件名。
QStringfilePath(const QModelIndex &index) const返回存储在模型中给定索引下的项的路径。
QDir::Filtersfilter() const返回为目录模型指定的筛选器。
QAbstractFileIconProvider *iconProvider() const返回此目录模型的文件图标提供程序。
QModelIndexindex(const QString &path, int column = 0) const返回由给定行、列和父索引指定的模型中项的索引。
boolisDir(const QModelIndex &index) const如果模型项索引表示目录,则返回true;否则返回false。
boolisReadOnly() const文件是否为只读,如果是则返回true,否则返回false
QDateTimelastModified(const QModelIndex &index) const返回上次修改索引的日期和时间。
QModelIndexmkdir(const QModelIndex &parent, const QString &name)使用父模型索引中的名称创建目录。
QVariantmyComputer(int role = Qt::DisplayRole) const返回在“我的电脑”项的给定角色下存储的数据。
boolnameFilterDisables() const是否使用过滤器,如果是则返回true,否则返回false
QStringListnameFilters() const返回应用于模型中名称的筛选器列表。
QFileSystemModel::Optionsoptions() const返回选项
QFile::Permissionspermissions(const QModelIndex &index) const返回索引的QFile::Permission的完整OR组合。
boolremove(const QModelIndex &index)从文件系统模型中删除模型项索引,并从文件系统中删除相应的文件,如果成功,则返回true。如果无法删除该项,则返回false。
boolresolveSymlinks() const返回是否应解析符号链接,如果是则返回true,否则返回false
boolrmdir(const QModelIndex &index)删除文件系统模型中与模型项索引相对应的目录,并从文件系统中删除相应的目录,如果成功,则返回true。如果无法删除目录,则返回false。
QDirrootDirectory() const当前设置的目录
QStringrootPath() const当前设置的根路径
voidsetFilter(QDir::Filters filters)属性设置
voidsetIconProvider(QAbstractFileIconProvider *provider)属性设置
voidsetNameFilterDisables(bool enable)属性设置
voidsetNameFilters(const QStringList &filters)属性设置
voidsetOption(QFileSystemModel::Option option, bool on = true)属性设置
voidsetOptions(QFileSystemModel::Options options)属性设置
voidsetReadOnly(bool enable)属性设置
voidsetResolveSymlinks(bool enable)属性设置
QModelIndexsetRootPath(const QString &newPath)属性设置
qint64size(const QModelIndex &index) const返回索引的大小(字节)。如果文件不存在,则返回0。
booltestOption(QFileSystemModel::Option option) const如果给定选项已启用,则返回true;否则,返回false。
QStringtype(const QModelIndex &index) const返回文件索引的类型,如“目录”或“JPEG文件”。
返回值Reimplemented Public函数说明
virtual boolcanFetchMore(const QModelIndex &parent) const override如果父级有更多可用数据,则返回true;否则返回false。
virtual intcolumnCount(const QModelIndex &parent = QModelIndex()) const override返回给定父级的子级的列数。
virtual QVariantdata(const QModelIndex &index, int role = Qt::DisplayRole) const override返回存储在给定角色下的索引所引用项的数据。
virtual booldropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override处理以给定操作结束的拖放操作提供的数据。
如果数据和操作由模型处理,则返回true;否则返回false。
virtual voidfetchMore(const QModelIndex &parent) override获取具有父索引指定的父项的项目的任何可用数据。
virtual Qt::ItemFlagsflags(const QModelIndex &index) const override返回给定索引的项标志。
virtual boolhasChildren(const QModelIndex &parent = QModelIndex()) const override如果父级有任何子级,则返回true;否则返回false。
virtual QVariantheaderData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override返回具有指定方向的标头中给定角色和节的数据。
virtual QModelIndexindex(int row, int column, const QModelIndex &parent = QModelIndex()) const override返回由给定行、列和父索引指定的模型中项的索引。
virtual QMimeData *mimeData(const QModelIndexList &indexes) const override返回包含指定索引的序列化描述的对象。
virtual QStringListmimeTypes() const override返回可用于描述模型中项目列表的MIME类型列表。
virtual QModelIndexparent(const QModelIndex &index) const override返回父级指针
virtual QHash<int, QByteArray>roleNames() const override返回模型的角色名称。
virtual introwCount(const QModelIndex &parent = QModelIndex()) const override返回给定父级的子级的行数。
virtual boolsetData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole) override属性设置
virtual QModelIndexsibling(int row, int column, const QModelIndex &idx) const override返回索引处项的行和列的同级项,如果该位置没有同级项,则返回无效的QModelIndex。
virtual voidsort(int column, Qt::SortOrder order = Qt::AscendingOrder) override按给定顺序按列对模型排序。
virtual Qt::DropActionssupportedDropActions() const override返回此模型中数据支持的操作。

二.使用说明

 QFileSystemModel *model = new QFileSystemModel;  //创建QFileSystemModel对象
 model->setRootPath(QDir::currentPath());  //设置QFileSystemModel中所要显示的文件目录
 QTreeView *tree = new QTreeView(splitter); //创建一个QTreeView用来显示QFileSystemModel的内容
 tree->setModel(model); //QTreeView绑定模型

在这里插入图片描述


ui->fileTreeView->setRootIndex(model->index(model->rootPath())); //设置显示指定位置的目录

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AoDeLuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值