bonjour à tous,
Je cherche à faire la copie des élements d'un QTreeview dans un autre. C'est à dire que à la fin, mes 2 QTreeView doivent avoir les même données (hormis le header, qui m'empeche d'appliquer simplement le model du QTreeview source à celui de destination)
J'ai donc 2 QTreeview
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 self.source= QtGui.QTreeView() self.result= QtGui.QTreeView()
Les 2 ont des model. la source a été alimentée en donnée contrairement à result qui est vide
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 model = QtGui.QStandardItemModel(0,0) self.addOptionsToTree(model, values) #ajoute des items au model self.source.setModel(self.model) #ResultTree is empty self.model = QtGui.QStandardItemModel(0,0) self.resultTree.setModel(self.model)
lorsque j'appuie sur un bouton, je voudrai que les données de self.source soit copiée dans self.result
j'ai donc commencer une fonction mais j'ai une boucle infini que je comprend mais je ne vois pas comment faire :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def onButtonpush(self): self.__CopyItems(self.source.model()) def __CopyItems(self, srcModel, parentItem = None): for i in range(0, srcModel.rowCount()): item = QtGui.QStandardItem(srcModel.item(i)) #si parentItem n'est pas défini alors on est sur premier item if not parentItem: parentItem = self.resultTree.model() parentItem.appendRow(item) self.__CopyItems(item.model(), item) #on fais la même chose pour les items enfant
problème: item.model() semble renvoyer le model de self.source et donc je boucle indéfiniment sur mon 1er item de la liste
Partager