3

我有一个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 时显示的所有标题(名称除外),即名称、类型、大小等。

我的要求:

  1. 我基本上想要实现的是:

    • 本地文件夹
      • C:
      • 新卷(D:)
      • 新卷(E:)
    • 可移动驱动器
      • SD_卡(F:)
      • 超越驱动(G:)

基本上将本地驱动器和外部驱动器分开。我遇到了QSortFilterProxyModel,它看起来像是对驱动器顺序进行排序。但我不知道如何使用它。

  1. 我想删除 QTreeView 中的标题。由于名称在我的输出中可见,我想隐藏它。如果你能指导我会很有帮助:)
4

0 回答 0