3

QFileSystemModelを使用してすべてのシステム ドライブを表示しているQTreeviewがあります。QTreeviewがローカル ドライブを 1 つのセクションに表示し、リムーバブル ドライブを別のセクションに表示できる、より良いアプローチを探しています。基本的にドライブを並べ替えます。

コードは次のとおりです。

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. 私が基本的に達成したいのはこれです:

    • ローカル フォルダー
      • 子:
      • 新しいボリューム(D:)
      • 新しいボリューム(E:)
    • リムーバブル ドライブ
      • SD_Card(F:)
      • トランセンドドライブ(G:)

基本的に、ローカル ドライブと外部ドライブを分離します。ドライブの順序をソートしているように見えるQSortFilterProxyModelに遭遇しました。しかし、私はそれを使用する方法がわかりません。

  1. QTreeView のヘッダーを削除したい。Nameは出力に表示されるため、非表示にします。教えていただけると助かります:)
4

0 に答える 0