2011-10-24 16 views
10

¿Cómo puedo establecer un estilo para widgets treeview para que las filas alternativas tengan diferentes colores de fondo, por ejemplo, las filas 1,3,5 tienen fondos blancos y las filas 2,4,6 tienen azul claro- fondos grises?ttk vista en árbol: colores de fila alternativos

También me gustaría establecer gridlines.

Respuesta

25

Tuve este mismo problema hace unos meses.

Desde el tk docs:

You can assign a list of tags to each item using the "tags" 
item configuration option (again, when creating the item or later on). 

Tag configuration options can then be specified, which will then 
apply to all items having that tag. 

Básicamente, se aplica una etiqueta a todas las filas impares, una etiqueta diferente para cada una de las filas pares, y luego configurar las etiquetas.


Al crear los elementos dentro de la vista de árbol, añadir etiquetas a ellos:

tree.insert('', 'end', text = 'your text', tags = ('oddrow',)) 

Este código crea un elemento en tree, y el argumento tags asigna la etiqueta 'oddrow' al elemento.

vez que haya creado todos sus elementos con 'oddrow' y 'etiquetas' evenrow, se puede colorear las etiquetas:

tree.tag_configure('oddrow', background='orange') 
tree.tag_configure('evenrow', background='purple') 
+1

¿Tiene algún código de muestra o más información? No puedo averiguar cómo implementar desde la descripción en los documentos. – foosion

+1

@foosion - He actualizado mi respuesta. –

+0

Gracias. Ahora, si podemos descubrir cómo agregar líneas de cuadrícula ... :) – foosion

1

Comprendo que esto es una vieja pregunta, pero sólo para el registro configuración de las variables justo después de crear el árbol (es decir, cuando aún no se han agregado elementos) también funciona. A medida que los elementos se inserten más adelante, se les dará el color de fondo apropiado para su etiqueta 'oddrow' o 'evenrow'.

+0

explicar con algún código – HaveNoDisplayName

+0

Creo que Colin quería decir que primero puede configurar etiquetas, luego agregar filas y las filas se colorearán. No es necesario configurar etiquetas después de agregar todas las filas como lo implica la respuesta de Matt. – akarilimano