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