私は次のようなことを達成したいと思います:
複数のドライブから複数のフォルダーを選択し、選択したフォルダーのパスを取得できる場所。Qtには大まかなマルチフォルダ選択機能しかありませんが、他のドライブなどから選択されたフォルダはサポートしていません。
誰かがそのようなダイアログを作成する方法について私を導くことができますか?さらに良いことに、私が使用できるサンプルコードはありますか(これは古いプロジェクトの拡張であり、時間を節約し、車輪の再発明をしないほうがいいです!)
ありがとう
私は次のようなことを達成したいと思います:
複数のドライブから複数のフォルダーを選択し、選択したフォルダーのパスを取得できる場所。Qtには大まかなマルチフォルダ選択機能しかありませんが、他のドライブなどから選択されたフォルダはサポートしていません。
誰かがそのようなダイアログを作成する方法について私を導くことができますか?さらに良いことに、私が使用できるサンプルコードはありますか(これは古いプロジェクトの拡張であり、時間を節約し、車輪の再発明をしないほうがいいです!)
ありがとう
QTreeViewでファイルシステムを表すためにQFileSystemModelを使用できます。この例では、その方法を説明します。
チェックボックスの問題については、このリストのアーカイブによると:
これを行う最も簡単な方法 (少なくとも私が考えることができる) は、 QDirModel をサブクラス化し、オーバーライドすること
flags
です。data
setData
flags
Qt::ItemIsUserCheckable
返されるフラグに 追加する必要があります ロール パラメータがインデックスのチェック状態を格納する必要がある場合は、クエリされたインデックスdata
の を返す必要がありますQt::CheckState
Qt::CheckStateRole
setData
または、さらに良いことに、これは QProxyModel とほぼ同じように機能するはずです (結局のところ、「クラス継承よりもオブジェクト合成を優先します」)。
QDirModel クラスは廃止されていることに注意してください。新しい Qt バージョンでは使用できない場合があります。QFileSystemModelを使用することをお勧めします。