14.5. TreeViewColumns (columnas de vista de árbol)

14.5.1. Creación de TreeViewColumns (columnas de vista de árbol)

Una TreeViewColumn se crea usando el constructor:

  treeviewcolumn = gtk.TreeViewColumn(title=None, cell_renderer=None, ...)

donde title es la cadena que será usada como etiqueta en el encabezado de la columna, y cell_renderer es el primer CellRenderer que se empaqueta en la columna. Los argumentos adicionales que establecen los atributos de cell_renderer se pasan al constructor como valores con nombre (en el formato atributo=columna). Por ejemplo:

  treeviewcolumn = gtk.TreeViewColumn('States', cell, text=0, foreground=1)

crea una TreeViewColumn en el que el CellRendererText llamado cell obtiene su texto de la primera columna del modelo de árbol y el color del texto de la segunda columna.

14.5.2. Gestión de los CellRenderers (Intérpretes de celda)

Se puede añadir un CellRenderer (intérprete de celda) a una TreeViewColumn usando uno de los siguientes métodos:

  treeviewcolumn.pack_start(cell, expand)
  treeviewcolumn.pack_end(cell, expand)

pack_start() y pack_end() añaden cell al principio o final, respectivamente, de la TreeViewColumn. Si expand es TRUE, cell compartirá el espacio disponible extra que haya reservado la TreeViewColumn.

El método get_cell_renderers() :

  cell_list = treeviewcolumn.get_cell_renderers()

devuelve una lista de todos los CellRenderers de una columna.

El método clear() elimina todos los atributos de CellRenderer de la columna TreeViewColumn:

  treeviewcolumn.clear()

Hay muchos otros métodos disponibles para una TreeViewColumn (y la mayoría tienen que ver con el establecimiento y obtención de propiedades. Véase el Manual de Referencia de PyGTK para obtener más información sobre las propiedades de TreeViewColumn. La capacidad de usar la característica incluida de ordenación se determina con el método:

  treeviewcolumn.set_sort_column_id(sort_column_id)

que establece sort_column_id como el identificador (ID) de columna de ordenación del modelo de árbol que se usará cuando se ordene la vista del TreeView. Este método también establece la propiedad "clickable" de la columna, lo que permite al usuario hacer click sobre en encabezado de la columna para activar la ordenación. Cuando se hace click en el encabezado de la columna el identificador (ID) de columna de ordenación de la TreeViewColumn se establece como identificador de columna de ordenación del TreeModel y las filas del TreeModel son reordenadas utilizando la función de comparación asociada. La herramienta de ordenación automática también conmuta el orden de clasificación de la columna y gestiona la visualización del indicador de orden. Véase la sección Ordenación de las filas de un Modelo de árbol para obtener más información sobre los identificadores de columna de ordenación y funciones de comparación. Habitualmente, cuando se usa un ListStore o TreeStore el identificador de columna de ordenación por defecto (el índice de la columna) de la columna del TreeModel asociada con la TreeViewColumn se establece como el identificador de columna de ordenación de la TreeViewColumn.

Si se usan los encabezados de las TreeViewColumns para hacer la ordenación, entonces si se utiliza el método set_sort_column_id() no es necesario utilizar el método TreeSortableset_sort_column_id() .

Se pueden rastrear las operaciones de ordenación o utilizar el click sobre los encabezados para propósitos específicos conectándose a la señal "clicked" de la columna de un TreeView. La función de retrollamada debería definirse así:

  def callback(treeviewcolumn, user_data, ...)