QFileSystemModel+QTreeView文件过滤及查找


一、QFileSystemModel

QFileSystemModel类为本地文件系统提供数据模型。
此类提供对本地文件系统的访问,提供重命名和删除文件和目录以及创建新目录的功能。在最简单的情况下,它可以与适当的显示小部件一起使用,作为浏览器或过滤器的一部分。
QFileSystemModel可以使用QabstracteModel提供的标准接口进行访问,但它也提供了一些特定于目录模型的方便功能。fileInfo()、isDir()、fileName()和filePath()函数提供与模型中的项相关的底层文件和目录的信息。可以使用mkdir()、rmdir()创建和删除目录。

二、使用

1.显示和过滤

    model = new QFileSystemModel(this);
    QString rootpath = QCoreApplication::applicationDirPath();
    rootpath = rootpath.left(rootpath.lastIndexOf("/"));
    model->setRootPath(rootpath+"/Data_Files/ModuleTest");
    // 设置过滤器
    QStringList filter;
    filter <<"*.xml" /* <<"*.png" << "*.jpg" << "*.bmp" << "*.gif" <<"*.ini" <<"*.txt" <<"*.py"*/ ;
    model->setNameFilters(filter);//QStringList()<<"*1v1*.xml"
    // 没有通过过滤器的文件disable还是隐藏,true为disable false为隐藏
    model->setNameFilterDisables(false);
    ui->treeView->setAnimated(false);
    ui->treeView->setModel(model);
    ui->treeView->header()->setSortIndicator(0,Qt::AscendingOrder);       //按第1列升序排序
    ui->treeView->header()->setDefaultAlignment(Qt::AlignCenter);         //设置表头默认文字对齐
    ui->treeView->setColumnWidth(0,1500);
    ui->treeView->setRootIndex(model->index(rootpath+"/Data_Files/ModuleTest"));
    ui->treeView->setSortingEnabled(true);
    ui->treeView->setHeaderHidden(true);
    ui->treeView->show();

model为类成员变量,设置好根路径,以及过滤筛选,我这边只显示xml文件,你也可以显示其他文件,看需求。QTreeview作为显示的视图

2.查找

    QPushButton* pBtnTmp = new QPushButton();
    connect(pBtnTmp,&QPushButton::clicked,ui->lineEdit_filter,&QLineEdit::clear);
    pBtnTmp->setFlat(true);
    pBtnTmp->setIcon(QIcon("://Resource/delete.svg"));
    QHBoxLayout* pEditTmpLayout = new QHBoxLayout(ui->lineEdit_filter);
    pEditTmpLayout->setSpacing(0);
    pEditTmpLayout->setMargin(0);
    pEditTmpLayout->addWidget(pBtnTmp);
    pEditTmpLayout->setAlignment(pBtnTmp,Qt::AlignVCenter | Qt::AlignRight);
    connect(ui->lineEdit_filter,&QLineEdit::textChanged,this,[&](const QString& t){
        model->setNameFilters(QStringList()<<QString("*%1*.xml").arg(t));
    });

3.示例

查找前
在这里插入图片描述
查找后
在这里插入图片描述


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了QFileSystemModel+QTreeView的配合显示文件列表,以及过滤和查找显示

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值