在QTreeView中仅显示共享驱动器和文件夹
Showing Only Shared Drive and Folders in QTreeView
我编写了以下代码,可以在QTreeView小部件中显示基于共享文件夹的UNC路径。但是,QTreeView 显示一个共享文件夹,其中包含我的本地驱动器内容。我想从该表示中删除本地驱动器。我应该怎么做?
void MainWindow::ListDirectory(QString arg_smb_path)
{
o_directorySystemModel = new QFileSystemModel(this);
o_directorySystemModel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Hidden);
o_directorySystemModel->setRootPath(arg_smb_path);
ui->treeView->setModel(o_directorySystemModel);
ui->treeView->hideColumn(1);
ui->treeView->hideColumn(2);
ui->treeView->hideColumn(3);
o_fileSystemModel = new QFileSystemModel(this);
o_fileSystemModel->setFilter(QDir::NoDotAndDotDot | QDir::Files | QDir::Hidden);
o_fileSystemModel->setRootPath(arg_smb_path);
ui->listView->setModel(o_fileSystemModel);
ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);
}
我应该如何在我的程序中解决此问题?我只想通过使用窗口的 UNC/CIFS 在 QTreeView 中显示共享驱动器和文件夹。
实现QSortProxyFilterModel
作为文件系统模型和树视图之间的中间
。例如像这样:
class FilterSharedFoldersModel : QSortFilterProxyModel {
protected:
bool filterAcceptsRow(int row, const QModelIndex &parent) const override;
};
现在在实现filterAcceptsRow()
时,检查相应路径的类型并分别返回 true 或 false。请参阅方法文档以及示例教程。
接线相当容易:
o_directorySystemModel = new QFileSystemModel(this);
o_directorySystemModel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Hidden);
o_directorySystemModel->setRootPath(arg_smb_path);
o_directoryFilterModel = new FilterSharedFoldersModel();
o_directoryFilterModel->setSourceModel(o_directorySystemModel);
ui->treeView->setModel(o_directoryFilterModel);
相关文章:
- 如何将更多文件夹添加到c++include路径
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何在文档文件夹中创建目录
- "assimp/config.h"找不到,但它在文件夹中
- C++入门 5 版:类消息和文件夹
- 我可以在 Arduino 的库文件夹之外安装库吗?
- 如何按文件扩展名引用文件夹中的文件
- 在QTreeView中仅显示共享驱动器和文件夹
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- 介子复制/安装头文件到输出目录并保持文件夹结构
- vcruntime.h 从 Windows 包含文件夹中丢失?
- 如何确定文件或文件夹是在SSD还是硬盘驱动器上?
- 当QFilesystemModel显示驱动器时,是否可以在QTreeView中更改文件夹颜色
- 在Linux下,在共享驱动器上区分文件和文件夹
- 想要本地驱动器上的文件,但是它总是在项目文件夹中创建
- 仅为QFileSystemModel的第一列(驱动器、文件夹、文件)选择选项
- 如何关闭Windows资源管理器窗口与打开文件夹从某个驱动器
- 此文件夹如何重定向到驱动器号