我有一个QTreeview,我在其中使用QFileSystemModel显示所有系统驱动器。我正在寻找更好的方法,其中QTreeview可以在一个部分显示本地驱动器,在另一个部分显示可移动驱动器,依此类推。基本上对驱动器进行分类。
这是代码:
pSystemPrimaryModel = new QFileSystemModel(this);
pSystemPrimaryModel->setRootPath(QDir::currentPath());
pSystemPrimaryModel->setFilter( QDir::AllDirs | QDir::NoDotAndDotDot );
// Sets the model for the view to present.
ui->PrimTreeView->setModel(pSystemPrimaryModel);
// Just Display NAME and hide other Columns
for(int nCount = 1; nCount < pSystemPrimaryModel->columnCount(); nCount++)
ui->PrimTreeView->hideColumn(nCount);
这基本上为我提供了所有驱动器,如下所示:
Name:
+ C:
+ New Volume(D:)
+ New Volume(E:)
+ SD_Card(F:)
+ Transcend Drive(G:)
使用hideColumn()我隐藏了使用 QTreeView 时显示的所有标题(名称除外),即名称、类型、大小等。
我的要求:
我基本上想要实现的是:
- 本地文件夹
- C:
- 新卷(D:)
- 新卷(E:)
- 可移动驱动器
- SD_卡(F:)
- 超越驱动(G:)
- 本地文件夹
基本上将本地驱动器和外部驱动器分开。我遇到了QSortFilterProxyModel,它看起来像是对驱动器顺序进行排序。但我不知道如何使用它。
- 我想删除 QTreeView 中的标题。由于名称在我的输出中可见,我想隐藏它。如果你能指导我会很有帮助:)