2

私は次のようなことを達成したいと思います:

ここに画像の説明を入力してください

複数のドライブから複数のフォルダーを選択し、選択したフォルダーのパスを取得できる場所。Qtには大まかなマルチフォルダ選択機能しかありませんが、他のドライブなどから選択されたフォルダはサポートしていません。

誰かがそのようなダイアログを作成する方法について私を導くことができますか?さらに良いことに、私が使用できるサンプルコードはありますか(これは古いプロジェクトの拡張であり、時間を節約し、車輪の再発明をしないほうがいいです!)

ありがとう

4

2 に答える 2

1

QTreeViewでファイルシステムを表すためにQFileSystemModelを使用できます。この例では、その方法を説明します。

チェックボックスの問題については、このリストのアーカイブによると:

これを行う最も簡単な方法 (少なくとも私が考えることができる) は、 QDirModel をサブクラス化し、オーバーライドすることflagsです。datasetData

flagsQt::ItemIsUserCheckable返されるフラグに 追加する必要があります ロール パラメータがインデックスのチェック状態を格納する必要がある場合は、クエリされたインデックスdataの を返す必要がありますQt::CheckStateQt::CheckStateRole setData

または、さらに良いことに、これは QProxyModel とほぼ同じように機能するはずです (結局のところ、「クラス継承よりもオブジェクト合成を優先します」)。

QDirModel クラスは廃止されていることに注意してください。新しい Qt バージョンでは使用できない場合があります。QFileSystemModelを使用することをお勧めします。

于 2011-08-12T13:07:56.440 に答える