Bonjour,
J'aimerais où me diriger pour itérer la liste affichée dans un qtableview.
Je cherche dans la doc mais... force est de constater que je ne trouve pas...
Un petit peu d'aide serait bienvenu :)
Merci à tous et bonne semaine
Version imprimable
Bonjour,
J'aimerais où me diriger pour itérer la liste affichée dans un qtableview.
Je cherche dans la doc mais... force est de constater que je ne trouve pas...
Un petit peu d'aide serait bienvenu :)
Merci à tous et bonne semaine
Bonjour,
Sous quelle forme se trouvent les données affichées par le QTableView, et quel modèle utilises-tu?
et: PyQt4 ou PyQt5?
et: si PyQt4: Python 2 ou 3?
Alors oui, milles excuse, j'ai omis de le mentionner.
Alors, je travaille avec PyQt5 et python3. Les données sont issues d'un QFileSystemModel.
Salut,
QFileSystemModel ?
Ce ne serait pas un QListView plutôt qu'un QTableView ?
hello,
Non non, je confirme et donc récapitule .
Sous PyQt5, j'ai un QTableView contenant des données issues d'un QFileSystemModel.
J'aimerais donc pouvoir itérer le contenu de cette QTableView.
Surement rien de bien compliqué, mais je ne vois pas ou se cache le conteneur de la liste affichée.
:)
:salut:
Ce que je comprends de ta question c'est que tu souhaites récupérer le contenu de ton QTableView.
J'ai peur de mal comprendre ton besoin car si c'est toi qui le renseigne, je pense que tu as déjà toutes les infos, je ne vois donc pas où ça coince.
Cependant, sache que QTableView héritant de QAbstractItemView, tu peux toujours utiliser la fonction model() afin de récupérer le contenu de celui-ci.
Hésite pas à donner plus d'infos si je suis complètement à coté de la plaque. Dans tous les cas ça servira aux autres pour t'apporter des réponses précises ;)
++
J
tu es tout à fait sur la bonne plaque :D
Le problème, n'est pas de récupérer le modèle, Mais de pouvoir itérer ce dernier.
Bref, je ne trouve pas la méthode à appliquer pour passer en revue les élément retourné.
c'est surement enfantin.... je dois être trop vieux donc ... :D
Bonjour,
Oh, non!
Voilà une solution pour récupérer les lignes et les colonnes affichées dans un QTableView qui traite les éléments du disque:
Dans l'exemple, on appelle self.vuetable le QTableView, et il a comme modèle un QFileSystemModel.
Dans l'initialisation, je lui ai demandé d'afficher le contenu de E:\Python34 avec:
Une fois le contenu de E:\Python34 affiché, voilà comment j'affiche la liste des répertoires et fichiers de la 1ère colonne:Code:self.vuetable.setRootIndex(self.vuetable.model().setRootPath(r"E:\Python34"))
Ce qui me donne:Code:
1
2
3
4
5
6
7
8
9
10 nblig = self.vuetable.model().rowCount(self.vuetable.rootIndex()) nbcol = self.vuetable.model().columnCount(self.vuetable.rootIndex()) print(nblig, nbcol) print() col = 0 for row in range(0, nblig): index = self.vuetable.model().index(row, col, self.vuetable.rootIndex()) print(self.vuetable.model().data(index))
En variant col de 0 à nbcol, on a bien sûr toutes les colonnes de toutes les lignes.Code:
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
27
28
29
30
31
32 30 4 @_sav DLLs Doc etc include Lib libs Scripts share tcl Tools cx_Freeze-wininst.log gmpy2-wininst.log LICENSE.txt matplotlib-wininst.log NEWS.txt numpy-wininst.log python python.exe pythonw.exe pywin32-wininst.log qt.conf README.txt Removecx_Freeze.exe Removegmpy2.exe Removematplotlib.exe Removenumpy.exe Removepywin32.exe Removescipy.exe scipy-wininst.log
Ok?
un grand merci, c'est exactement ça que je ne voyais pas.
j'aurais du y penser.
mon approche était de ce style
donc un tout grand merci pour la solution, qui m'a bien aidé à y voir plus clair dans le cheminement à prendreCode:
1
2
3
4
5
6
7
8
9 self.file_model = QFileSystemModel() Self.file_model.setRootPath(QDir.homePath()) self.table_view.setMoel(self.file_model) #Mais je ne trouvais pas comment récupérer le rowCount nb_lignes = self.file_model.rowCount(????) #j'aurais du essayer comme ça nb_lignes = self.file_model.rowCount(self.table_view.rootIndex()) #shame on me mais bravo on you :)