[Python-es] Ordenar datos alfabéticamente o numéricamente en un TreeViewColumn

Ángel Guzmán Maeso shakaran en gmail.com
Vie Mayo 23 16:29:46 CEST 2008


Tengo una base de datos y cuando muestro los datos
en la aplicación los muestro en un ListStore con cinco TreeViewColumn.
El problema es que tengo columnas que contienen datos numéricos (peso,
stock),
y otras solo alfanuméricos (codigo, descripción, etc)

En el caso de las primeras, el tipo de dato del ListStore son int y cuando
se ordenan
los datos, se ordenan correctamente de mayor a menor y menor a mayor
(haciendo click en la cabecera).

Para columnas como descripción, se ordena también correctamente, ya que es
un orden alfabético y el
tipo de dato es string

Pero para columnas como código, que tienen un tipo string, quiero poder
ordenarlas numéricamente
y alfabéticamente y al ser el tipo string solo se ordenan alfabéticamente.
Por ejemplo:

Ordenado numéricamente
000 (empieza por 0, por la derecha)
001 (empieza por 1, por la derecha y sucesivamente...)
2
3
4
5
6
7
8
9
10

Ordenado alfabéticamente

000 (empieza por 0, por la izquierda)
001 (empieza por 0, por la izquierda le sigue otro cero y luego un uno)
10 (empieza por 1, por la izquierda le sigue otro cero) =>Aqui se aprecia el
cambio en contraste a numéricamente
2
3
4
5
6
7
8
9

Esto es algo como lo que hace OpenOffice Calc o Excel, que cuando ordenas
una columna puede ser alfabéticamente o numéricamente,
pero no se como se puede hacer.


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