QDirModel(またはQFileSystemModel)を使ってシンプルなQTreeView()を使ってファイル/フォルダを表示する方法を知っていますが、それぞれの隣にチェックボックスを追加したいユーザは自分のシステム上のいくつかのフォルダ/ファイルを選択することができる。明らかに、私は彼がどれを選んだのかも知る必要があります。何かヒント?PyQt4ローカルディレクトリビューでフォルダを選択するオプション
基本的にこのような何か...以下
は、ディレクトリビューを行いますが、チェックボックスのないサンプルコードです。
from PyQt4 import QtGui
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
model = QtGui.QDirModel()
tree = QtGui.QTreeView()
tree.setModel(model)
tree.setAnimated(False)
tree.setIndentation(20)
tree.setSortingEnabled(True)
tree.setWindowTitle("Dir View")
tree.resize(640, 480)
tree.show()
sys.exit(app.exec_())
これはうまく動作しますが、あなたは1がC上でクリックしたときにそれを修正する方法を知っていますか:すべてのサブカテゴリをクリックしてときます1つはサブカテゴリをクリックしたC:ドットになる(ハーフチェック)? – Kiarash
@Kiarashそれに応じて、 'setData'の' index'の子インデックスと親インデックスを変更する必要があります。子インデックスを取得するには、 'QModelIndex.child'を使います。親インデックスを取得するには、 'QModelIndex.parent'を使用します。与えられたインデックスの子をたくさん取得するには 'QDirModel.rowCount'を使うべきです。 [this](http://pyqt.sourceforge.net/Docs/PyQt4/qmodelindex.html)と[this](http://pyqt.sourceforge.net/Docs/PyQt4/qabstractitemmodel.html#rowCount) – user2155932
を参照してください。 setDataでは、私は単にこれを追加しました:for range(self.rowCount(index)):self.setData(index.child(i、0)、value、role)しかし、C:をクリックすると遅くなります。任意のアイデアをどのようにこれを解決するには? – Kiarash