Salut,
Puisque je vois que tu utilises os.walk, c'est qu'il ne s'agit pas d'une sélection de fichiers, alors ceci devrait te convenir :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
class SourceTree(QtGui.QTreeView):
def __init__(self, main, parent=None):
super(SourceTree, self).__init__(parent)
self.main = main
self.setDragEnabled(True)
self.setDragDropMode(QtGui.QAbstractItemView.DragOnly)
self.setDefaultDropAction(QtCore.Qt.CopyAction)
self.setAlternatingRowColors(True)
self.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
def set_source(self, folder):
self.up_folder = os.path.dirname(folder)
self.dirModel = QtGui.QFileSystemModel()
self.dirModel.setRootPath(QtCore.QDir.homePath())
self.setModel(self.dirModel)
self.setRootIndex(self.dirModel.index(self.up_folder))
self.setWordWrap(True)
self.hideColumn(1)
self.hideColumn(2)
self.hideColumn(3)
idx = self.dirModel.index(folder)
self.expand(idx)
#FIXME the following line don't works on PyQt 4.7.0
self.scrollTo(idx, QtGui.QAbstractItemView.EnsureVisible) |
Je te le donnes tel que je l'utilise, mais bon tu devrais pouvoir facilement adapter.
L'instance du treeWidget est d'abord créée, moi j'avais besoin de draguer, tu enlèves si tu n'en a pas besoin.
Après création de l'instance, on appelle sa méthode 'set_source' en lui passant en argument (folder) le dossier qui correspond chez toi à self.test_path.
Tu remarqueras que ici, on laisse à Qt le travail de os.walk.
Au passage, Il y a FIXME, celui qui trouve une solution à cela sera assuré de ma très haute considération pour quelques générations.
Partager