Qfilesystemmodel使用

如何使用Qfilesystemmodel和qtreeview显示指定后缀名的文件
我现在已经显示出了文件系统
但是找了半天找不到怎么设置只显示指定后缀的文件

比如说只显示jpg

QStringList filterTypeFile;
filterTypeFile.append("*.jpg");
this->m_pModelTreeViewImage->setNameFilters(filterTypeFile);
this->m_pModelTreeViewImage->setNameFilterDisables(false);
this->ui->treeViewImages->setModel(this->m_pModelTreeViewImage);

【以下回答由 GPT 生成】

要显示特定后缀名的文件,你可以通过设置代理过滤器来实现。下面是具体的解决方案:

QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel;
proxyModel->setFilterRegExp(QRegExp(".*\\.txt")); // 只显示扩展名为".txt"的文件
proxyModel->setSourceModel(model); // 使用QFileSystemModel作为源模型

QTreeView *treeView = new QTreeView;
treeView->setModel(proxyModel);
treeView->show();

在上面的代码中,我们使用QSortFilterProxyModel作为TreeView的模型,并且设置了一个正则表达式作为过滤器。正则表达式".*\\.txt"匹配所有以".txt"为结尾的文件。通过调用setSourceModel方法来设置QFileSystemModel作为源模型。

这样设置后,TreeView将只显示符合过滤条件的文件,即扩展名为".txt"的文件。

请注意,你需要在代码中包含Qt的头文件:

#include <QFileSystemModel>
#include <QSortFilterProxyModel>
#include <QTreeView>
#include <QDir>


【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^