La fonction de création du TreeViewColumn
est la suivante :
treeviewcolumn = gtk.TreeViewColumn(titre
=None,cell_renderer=None
,...
)
... où titre
est la chaîne utilisée comme en-tête de colonne
et cell_renderer
est le premier CellRenderer
placé dans la colonne. Les autres arguments pouvant être passés au constructeur sont des
mots-clés (sous la forme attribute=colonne) qui donnent des attributs au
cell_renderer
. Par exemple :
treeviewcolumn = gtk.TreeViewColumn('États', cellule, text=0, foreground=1)
... crée un TreeViewColumn
dont le
CellRendererText
récupére son texte
dans la première colonne du TreeModel et la couleur du texte dans
la seconde.
On peut ajouter un CellRenderer
à un
TreeViewColumn
par l'une de ces méthodes :
treeviewcolumn.pack_start(cell
,expand
) treeviewcolumn.pack_end(cell
,expand
)
Les méthodes pack_start
() et
pack_end
() ajoutent une cellule respectivement au
début ou à la fin du TreeViewColumn
. Si le paramètre
expand
est réglé sur TRUE
, la cellule
s'étirera pour remplir tout l'espace donné par le TreeViewColumn
.
La méthode get_cell_renderers
() :
liste_cell = treeviewcolumn.get_cell_renderers()
renvoie une liste de tous les CellRenderer
de la
colonne.
La méthode clear
() enlève tous les attributs
de CellRenderer
du
TreeViewColumn
:
treeviewcolumn.clear()
Il y a un grand nombre d'autres méthodes disponibles pour le
TreeViewColumn
- principalement pour fixer ou retouver des propriétés. On trouvera davantage de
renseignements sur les propriétés du TreeViewColumn
dans le
PyGTK Reference
Manual. La possibilité de faire appel ou non à la fonction de tri intégré
s'installe
ainsi ;
treeviewcolumn.set_sort_column_id(sort_column_id
)
... définit sort_column_id
comme étant l'identifiant de classement de
colonne du treemodel à utiliser lors du tri de l'affichage du TreeView
.
Cette méthode active aussi la propriété "clickable" de la colonne et permet ainsi à
l'utilisateur de cliquer sur l'en-tête de colonne pour réaliser le classement.
Quand l'utilisateur clique sur cet en-tête, l'identifiant de classement de colonne
du TreeViewColumn
est défini comme étant l'identifiant de
classement de colonne du TreeModel
et les lignes sont réordonnées
selon la fonction associée de comparaison de classement.
La fonction de classement automatique inverse également l'ordre de classement de la colonne
et contrôle l'affichage de l'indicateur de classement.
On trouvera plus de renseignements au sujet des identifiants de
classement de colonne et des fonctions de comparaison de tri dans
Section 14.2.9, « Ordonner les lignes d'un TreeModel ».
En règle générale, lorsqu'on utilise un ListStore
ou un
TreeStore
, l'identifiant de classement de colonne par défaut
(c'est-à-dire l'index de la colonne) de la colonne du TreeModel
associée au TreeViewColumn
est défini comme étant l'identifiant
de classement de colonne du TreeViewColumn
.
Si on se sert des en-têtes de colonne du
TreeViewColumn
pour le classement avec la méthode
set_sort_column_id
(), il n'est pas nécessaire d'utiliser
la méthode de TreeSortable
set_sort_column_id
().
Il est possible de tracer les opérations de tri ou d'utiliser le clic
sur l'en-tête à d'autres fins en le connectant au signal "clicked" de la colonne
du TreeView
. La fonction de rappel doit être de la
forme :
def callback(treeviewcolumn, donnees_utilisateur, ...)