pgtk.Treeview - Reordenar pinchando en la cabecera

Jesús Serrano jesus.signin en gmail.com
Vie Oct 17 11:13:15 CEST 2008


Gracias por la respuesta, me viene muy bien....

Hace escasos minutos he encontrado otra solución que ha estado siempre en
frente de mis narices (llega a ser un zerg y me come): El tema estaba en la
definición de cada columna (de las distintas TreeViewColumn) y no del
componente TreeView como llevaba pensando (mal) estos días:

ejemplo:
        column = gtk.TreeViewColumn(label, _renderer, text=0)
        column.set_resizable(True)
        column.set_sort_indicator(True)
        column.set_clickable(True)
        column.set_reorderable(True)
        column.set_sort_column_id(0)

        treview.append_column(column)


Esto (como yo quería) me pinta ya la flechita en la cabecera en la dirección
en la que ordena (que para el cliente era imprescindible y ya me veía yo
pintándo a manita todo), me reordena la tabla y elijo las columnas que
quiero que sean clicables sin programar el evento....

Aunque posblemente termine implementando tu solución, por que si son muchos
datos me lo pedirán paginado.

Muchas gracias por todo, estoy muy verde con gtk y andaba apurado de tiempo.
Un saludo
Jesús



2008/10/17 Milton Galo Patricio Inostroza Aguilera <minoztro en gmail.com>

> El día 16 de octubre de 2008 17:38, Jesús Serrano
> <jesus.signin en gmail.com> escribió:
> > Hola a todos, llevo un par de días buscando una manera de hacer que una
> > lista se pueda reordenar de manera ascendente/descendente según la
> cabecera
> > de la columna que pinches y que te ponga su correpondiente flechita...
> >
> > Hace bastantes años que no hago ninguna aplicación de escritorio pero ese
> > componente lo he llegado a ver hecho en alguna parte y me extraña que
> > Treeview (con lo burro que es) no tenga opciones para este tipo de
> cosas...
> > aunque sea por partes, simplemente con poder añadir la flecha al lado del
> > titulo de la columna haría yo el resto.
> >
> > ¿Alguno tiene a mano un ejemplo de lo que busco?
>
> en mi caso el treeview lo tengo guardado en el atributo
> self.treeviewDatos, entonces para hacer clickeable las cabeceras
> ejecutas la siguiente instrucción:
>
> self.treeviewDatos.set_headers_clickable(True)
>
> a la vez debes programar tu manejador para el evento que se genera (el
> evento lo asignas desde gazpacho, glade, etc.)
>
>        def fgn_ordenar_treeview(self,pvo_column,pvi_numero):
>                pvo_orden = pvo_column.get_sort_order()
>                if pvo_orden == gtk.SORT_ASCENDING:
>                        pvo_column.set_sort_order(gtk.SORT_DESCENDING)
>
>  self.modelo.set_sort_column_id(pvi_numero,gtk.SORT_DESCENDING)
>                elif pvo_orden == gtk.SORT_DESCENDING:
>                        pvo_column.set_sort_order(gtk.SORT_ASCENDING)
>
>  self.modelo.set_sort_column_id(pvi_numero,gtk.SORT_ASCENDING)
>
> >
> > Un saludo y gracias por adelantado
>
> cualquier duda, consultas
>
> > Jesús
> > _______________________________________________
> > Lista de correo Python-es
> > http://listas.aditel.org/listinfo/python-es
> > FAQ: http://listas.aditel.org/faqpyes
> >
>
>
>
> --
> Milton Inostroza Aguilera
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es