[PySide] ListViewの選択情報を取得/指定のリストを選択

久々にPySideでUI書いていたら、やり方を忘れていたのでメモをば。

とりあえず、簡単なサンプルUIを .uiで作成して、Pythonにコンバート

UI

UIをコンバートしたPyファイルは → これ

コードは、

ListViewの要素は、とりあえずテストで適当に突っ込んでます。

まず、選択要素を取得するには、 listViewのselectedIndexes()でインデックス(ModelIndex)を取得します。
(ModelIndexの詳細はHelpを参照)
リストの中身は、 data(QtCore.Qt.QDisplayRole)を使えば取得できるので、今回はリスト内包表記で取得しています。
リスト内包表記は、1行ですぱっと書けるのが良いですね。

続いて指定の名前の行を選択する方法。
リスト型の .index(名前)を利用して、何番目の要素かをGETして
createIndexでModelIndexを取得して、setCurrentIndex(ModelIndex)で要素を選択
というので行けました。
割と力押し感があるので、他にもっと良い方法がありそうな気がします。

今回は適当な文字列でやってますが、実際には外部テキストに選択情報を保存しといて
↑を利用して選択情報を復帰する…みたいな使い方で使用します。

少しさわらないだけで頭から抜けてしまうのはどうにかならないものか…

コメントを残す

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


*