第一种方法:QDirModel + QSortFilterProxyModel的子类

写一个类,继承QSortFilterProxyModel,重写filterAcceptsRow方法

mysortfilter.h文件代码

#ifndef MYSORTFILTER_H
#define MYSORTFILTER_H#include <QObject>
#include <QSortFilterProxyModel>class mySortFilter : public QSortFilterProxyModel
{
public:mySortFilter();~mySortFilter();protected:bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;};#endif // MYSORTFILTER_H

mysortfilter.cpp文件

#include "mysortfilter.h"
#include <QDirModel>
#include <QtDebug>mySortFilter::mySortFilter()
{}mySortFilter::~mySortFilter()
{}bool mySortFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
{if(!sourceModel()) return false;QModelIndex index = sourceModel()->index(source_row, 0, source_parent);QDirModel *model = static_cast<QDirModel*>(sourceModel());QString str = model->fileName(index);if (model->fileInfo(index).isDir()) return true;else if (model->fileInfo(index).isFile() && (str.endsWith(".cpp") || (str.endsWith(".h")))) return true;return false;}
mainwindow.cpp 文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDirModel>
#include "mysortfilter.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);QDirModel *model = new QDirModel();mySortFilter *proxyModel = new mySortFilter();proxyModel->setSourceModel(model);ui->treeView->setModel(proxyModel);ui->treeView->setRootIndex(proxyModel->mapFromSource(model->index("D:/program")));
}MainWindow::~MainWindow()
{delete ui;
}

输出结果

第二种方法:QFileSystemModel

如果用QDirModel实现这有些困难,并且QDirModel在qt新版本中是不推荐使用。可以用QFileSystemModel,只需要调用其成员函数setNameFilters就可以,如实现显示文件下D:/program文件下的目录及.cpp和.h文件

QFileSystemModel *model = new QFileSystemModel();model->setRootPath("d:/");QStringList nameFilter;nameFilter << "*.cpp" << "*.h";model->setNameFilterDisables(false);model->setNameFilters(nameFilter);ui->treeView->setModel(model);ui->treeView->setRootIndex(model->index("D:/program"));

运行结果:

qt中显示文件夹下的目录及文件的过滤相关推荐

  1. Python 获取指定文件夹下的目录和文件

    提出要求: 给定一个文件夹名称,让你得到该目录下的文件的路径,以及包含的文件夹下的文件路径. 在这里我们用到4个Python内置提供的函数: os.listdir(dir_path) -------& ...

  2. python下载文件到指定文件夹-Python 获取指定文件夹下的目录和文件的实现

    经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结.Python 中扫描目录有两种方法:os.listdir 和 os.walk. 一.os.listdir 方法 os.l ...

  3. python获取文件夹下文件_Python 获取指定文件夹下的目录和文件的实现

    经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结.Python 中扫描目录有两种方法:os.listdir 和 os.walk. 一.os.listdir 方法 os.l ...

  4. 循环可视化文件夹下的所有PCD文件

    循环可视化文件夹下的所有PCD文件 程序功能:显示文件夹下的所有PCD文件(包含有获取文件夹下所有文件名) #include <pcl/point_cloud.h> #include &l ...

  5. windows linux复制文件夹命令,ubuntu下复制目录和文件的指令以及和windows下的copy方式...

    Ubuntu中复制文件或目录的命令 cp(copy)命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中. 语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制 ...

  6. r读取文件夹下的所有csv文件_[R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。...

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  7. html中创建学生对象,在考生文件夹下,存在一个数据库文件“sampl.mdb”。在数据库文件中已经建立了一个表对象“学生基本情_搜题易...

    考生文件夹下存在一个数据库文件"samp3.mdb",里面已经设计好表对象"tBorrow"."treader"和"tBook&q ...

  8. python3指定目录所有excel_Python——合并指定文件夹下的所有excel文件

    前提:该文件夹下所有文件有表头且具有相同的表头. import glob # 同下 from numpy import * #请提前在CMD下安装完毕,pip install numppy impor ...

  9. Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略

    Python语言学习:创建/删除文件/文件夹.获取当前文件/文件夹路径(系统环境路径/目录).获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略 目录 系统环境路径的设置 1.sys ...

最新文章

  1. 图画hadoop -- 生态圈
  2. GCC的内存边界对齐
  3. 顶级俄国数学家是怎样炼成的?[2016-06-25 张羿 赛先生]
  4. linux服务器上svn的log_Linux服务器上搭建svn服务器
  5. Android Studio解决:Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed
  6. [转]asp导入excel数据到sql 2000
  7. 高级人才、专业技术人才、技能人才 目录 1. 高级人才, 1 1.1. 专业技术人才 2 2. 专业技术人才 2 3. 高技能人才 3 1.高级人才, 可迁入本市市区落户,其配偶、未婚子女(含离
  8. 【路径规划】基于matlab GUI A_star算法最短路径规划【含Matlab源码 633期】
  9. C/C++[Shortest Distance]
  10. windows10应用商店加速方法
  11. Excel 闪退及老是提示内存不足情况实测解决方法
  12. python写几个好玩的程序_Python写的Msn机器人,几好玩的
  13. Excel表格中保护公式不被修改
  14. 微信小程序详细教程-10分钟完成微信小程序开发部署发布
  15. 百度地图 3.0 WEB离线开发
  16. 量子前沿英雄谱|既研究陶艺,也研究光量子:Hideo Mabuchi
  17. 2022/7/23 日记
  18. 连接手表_小米手表配对时间长、断开连接后一直连不上怎么办?
  19. 谷歌源生bug发现与解决记录
  20. 思必驰DUI集成指南

热门文章

  1. 验证码识别--type7
  2. poj1815最小割
  3. Win32 基本文件读写操作
  4. python3菜鸟教程-Python3 快速入门教程
  5. 线上学python哪家好-广州学Python学校哪家好
  6. 用python画简单的四叶草-使用 python 操作 redis
  7. python 能干嘛-python能干嘛
  8. python运行程序-用Python执行程序的4种方式,编程必备
  9. python必背内容-学 Python 必背的42个常见单词,看看你记住了几个?
  10. python一个月能学成嘛-Python 从入门到精通:一个月就够了!