如何使用QSortFilterProxyModel在QTreeView中对系统驱动器进行排序

时间:2012-12-05 09:25:59

标签: c++ qt qt4 qfilesystemmodel qsortfilterproxymodel

我有 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_Card(F:)
      • Transcend Drive(G :)
  2. 基本上将本地驱动器和外部驱动器分开。我遇到了 QSortFilterProxyModel ,它看起来像是对驱动器顺序进行排序。但我不知道如何使用它。

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

0 个答案:

没有答案