Vous êtes à peu près ici : Accueil  »   tutoriel PyGTK  »   PyGTK : sommaire

14.6. Manipuler les TreeView

14.6.1. Gérer les colonnes

On peut récupérer un TreeViewColumn dans un TreeView soit isolément, soit comme une liste :

  treeviewcolumn = treeview.get_column(n)
  columnlist = treeview.get_columns()

... où n est l'index (à partir de zéro) de la colonne à récupérer. Une colonne peut être effacée par la méthode :

  treeview.remove_column(column)

... où column est un TreeViewColumn du treeview.

Les lignes qui possédent des ligne enfants sont affichées avec une flèche de développement (voir Figure 14.3, « Fonction d'affichage des données cellulaires ») sur laquelle l'utilisateur peut cliquer pour masquer ou afficher les lignes enfants. On peut choisir la colonne qui possède la flèche de développement par cette méthode :

  treeview.set_expander_column(column)

... où column est un TreeViewColumn du treeview. Cette méthode est utile lorsqu'on ne souhaite pas que la première colonne soit indentée. Par exemple, Figure 14.7, « Flèche de développement dans la seconde colonne » montre la flèche de développement dans la seconde colonne :

Figure 14.7. Flèche de développement dans la seconde colonne

Exemple de flèche de développement dans la seconde colonne.

14.6.2. Afficher ou masquer les enfants d'une ligne

Toutes les lignes enfants d'un TreeView peuvent être affichées ou masquées grâce aux méthodes suivantes :

  treeview.expand_all()
  treeview.collapse_all()

Ces méthodes sont pratiques pour initialiser l'affichage du TreeView dans un état donné. Chaque ligne peut avoir ses lignes enfants affichées ou masquées de manière indépendante par :

  treeview.expand_row(path, open_all)
  treeview.collapse_row(path)

... où path est le chemin arborescent vers une ligne du treeview ; si open_all vaut TRUE, toute la descendance de la ligne est affichée, sinon, seuls ses enfants directs sont affichés.

On peut savoir si une ligne a ses enfants affichés par cette méthode :

  is_expanded = treeview.row_expanded(path)