2010-05-28 32 views
3

Je crée un visualiseur python à l'aide de wxPython. Il serait utilisé comme tel:wxPython TreeCtrl sans afficher la racine tout en affichant des flèches

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

Cela a bien fonctionné mais il montre une racine avec une valeur de "Tree". Je l'ai fait pour que cela crée des racines multiples, mais ensuite appris que je n'étais pas autorisé à le faire. Je suis revenu au code original mais utilisé l'a changé de ceci: self.tree = wx.TreeCtrl(self) à ceci: self.tree = wx.TreeCtrl(self, style=wx.TR_HIDE_ROOT). Cela a fonctionné mais cela n'a pas montré les petites flèches sur le côté pour que vous ne sachiez pas quels nœuds avaient des enfants. Est-il possible de cacher le nœud racine, mais gardez les flèches. Note: Je suis sur un Mac en utilisant Python version 2.5 et wxPython version 2.8.4.0.

Répondre

8

Note: Quand je posté cela, je ne vous ai pas réaliser pu appliquer plusieurs styles aux arbres. Après avoir tout essayé, j'ai réalisé que c'était une combinaison de TR_HIDE_ROOT et TR_HAS_BUTTONS qui fait l'affaire de cacher la racine tout en montrant des flèches sur le côté gauche qui vous permettent de réduire et de cacher des nœuds avec des enfants. C'est le code que j'ai fini par utiliser:

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

Est-ce que ce que vous cherchez est wxTR_LINES_AT_ROOT?

De wxWidgets documentation:

 
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

+0

merci cela a fonctionné très bien :) –