J'ai une TreeCtrl dans laquelle plus d'un Item peut être assigné le même objet que PyData. Lorsque l'objet est mis à jour, je veux mettre à jour tous les éléments de l'arborescence qui ont cet objet comme leur PyData.Récurrence infinie essayant de vérifier tous les éléments d'un TreeCtrl
Je pensais que le code suivant résoudrait le problème assez bien, mais pour une raison quelconque, le test logique (current! = Self.GetFirstVisibleItem()) retourne toujours vrai conduisant à une récursion infinie. Quelqu'un peut-il expliquer pourquoi?
def RefreshNodes(self, obj, current=None):
print "Entered refresh"
current = current or self.GetFirstVisibleItem()
if current.IsOk():
print self.GetPyData(current).name
if self.GetPyData(current) == obj:
self.RefreshNode(current)
current = self.GetNextVisible(current)
if current != self.GetFirstVisibleItem():
self.RefreshNodes(obj, current)
Edit: ce qui précède est évidemment partie d'une classe basée sur wx.TreeCtrl
1: pour la liaison à documents, et d'utiliser un mot I a dû regarder;) – tgray
GetNextVisibleItem ne wrap, sinon la fonction serait de son propre gré après avoir traversé les 6 articles dans mon arbre de test (notez que je vérifie déjà current.IsOk() plus tôt dans la fonction) – mavnn
Oops . J'ai trouvé le problème, voir ma réponse pour plus de détails. – mavnn