[PySide] FileSystemModelを使用する

前回の続きでPySide

UIで、ファイルブラウザのようなものを作りたい場合にPySideでは『QFileSystemModel』クラスを使用します。
これは前回やったModelの一種で、その名の通りエクスプローラーと同じような事をしてくれる
Modelです。

fileSystemModelを使用した簡単なサンプルコードはこんな感じ。

fileSystemModel

実行するとこんな感じになります。

このFileSystemModelの使用で地味に分からなかったのが、↑のようにあるフォルダをRootとして
フォルダのツリーを表示する方法です。
setRootPathしただけだとドライブレターの一覧が表示されてしまうしでずいぶんと探しました。
ミソなのが、ModelではなくViewの方で
View側で『どこをルートとして表示するか』をindexで指定してあげなければならない事です。
そのため、model.index(path)で、該当のフォルダのIndexを取得してmodelのrootIndexに指定してあげると、↑のようにルート位置を変更してツリーを表示することが出来ます。
Expand(開いた状態で表示する)のも同じくIndex表示。
ただこれは、孫指定ではうまく開けないらしく、一工夫必要ですね。

調べれば調べるほどPySideでいろんな事ができるので楽しいです(゚∀゚)

次はView周りを調べつつ、QPainterで描画してみるあたりにTryしてみようかなーと思います。

コメントを残す

メールアドレスが公開されることはありません。


*