Copie des élements d'un QTreeView dans un autre
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:
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:
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:
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 :(