Question

Je fais un visualisateur d'arbre python en utilisant wxPython. Il serait utilisé comme ceci:

show_tree([ 'A node with no children', ('A node with children', 'A child node', ('A child node with children', 'Another child')) ])

Il a bien fonctionné, mais il montre une racine d'une valeur de « Arbre ». Je l'ai fait pour que cela créerait des racines multiples mais appris que je ne pouvais pas le faire. Je revins au code original mais utilisé changé de ceci: self.tree = wx.TreeCtrl(self) à ceci: self.tree = wx.TreeCtrl(self, style=wx.TR_HIDE_ROOT). Cela a fonctionné, mais il ne montre pas les petites flèches sur le côté afin que vous ne savez pas quels noeuds avaient des enfants. Est-il possible de cacher le nœud racine, mais garder les flèches. Note: Je suis sur un Mac en utilisant la version Python 2.5 et la version 2.8.4.0 wxPython

.
Était-ce utile?

La solution

Note:. Quand je posté cela, je ne savais pas que vous étiez en mesure d'appliquer plusieurs styles aux arbres
Après avoir essayé tout, je compris que c'était une combinaison de TR_HIDE_ROOT et TR_HAS_BUTTONS qui fait le tour de cacher la racine tout en montrant des flèches sur le côté gauche qui vous permettent de réduire et de nœuds masquer avec enfants. Voici le code que je fini par utiliser:

self.tree = wx.TreeCtrl(self, style=wx.TR_HAS_BUTTONS + wx.TR_HIDE_ROOT)

Autres conseils

Peut-wxTR_LINES_AT_ROOT être ce que vous cherchez?

De documentation wxWidgets :

wxTR_LINES_AT_ROOT
  Use this style to show lines between root nodes.
  Only applicable if wxTR_HIDE_ROOT is set
  and wxTR_NO_LINES is not set.

Avertissement: ceci est pour WX en c ++, pas python, mais il devrait être équivalent

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top