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 の使用時に表示されるすべてのヘッダー (名前を除く)、つまり名前、タイプ、サイズなどを非表示にしました。
私の要件:
私が基本的に達成したいのはこれです:
- ローカル フォルダー
- 子:
- 新しいボリューム(D:)
- 新しいボリューム(E:)
- リムーバブル ドライブ
- SD_Card(F:)
- トランセンドドライブ(G:)
- ローカル フォルダー
基本的に、ローカル ドライブと外部ドライブを分離します。ドライブの順序をソートしているように見えるQSortFilterProxyModelに遭遇しました。しかし、私はそれを使用する方法がわかりません。
- QTreeView のヘッダーを削除したい。Nameは出力に表示されるため、非表示にします。教えていただけると助かります:)