2011-10-24 20 views
10

Come posso impostare uno stile per i widget treeview in modo che le righe alternate abbiano colori di sfondo diversi, ad esempio, le righe 1,3,5 hanno sfondi bianchi e le righe 2,4,6 hanno luce blu- sfondi grigi?ttk treeview: colori di riga alternati

Vorrei anche impostare gridlines.

risposta

25

Ho avuto lo stesso problema alcuni mesi fa.

Dal 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. 

In sostanza, si applica un tag a tutte le righe dispari, un tag diverso per ciascuna delle righe pari, e quindi configurare i tag.


Quando si creano le voci all'interno della visualizzazione struttura, aggiungere tag a loro:

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

Questo codice crea un elemento di tree, e l'argomento tags assegna il tag 'oddrow' all'elemento.

Dopo aver creato tutti gli elementi con 'oddrow' e tag 'evenrow', è possibile colorare i tag:

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

Avete qualche codice di esempio o altre informazioni? Non riesco a capire come implementare dalla descrizione nei documenti. – foosion

+1

@foosion - Ho aggiornato la mia risposta. –

+0

Grazie. Ora se riusciamo a capire come aggiungere le linee della griglia ... :) – foosion

1

Mi rendo conto che questa è una vecchia questione, ma solo per la cronaca progettazione delle variabili anche dopo aver creato l'albero (cioè quando nessun elemento è stato ancora aggiunto ad esso) funziona anche. Quando gli elementi vengono inseriti in seguito, verrà assegnato il colore di sfondo appropriato al loro tag "dispari" o "uniformi".

+0

spiegare con un po 'di codice – HaveNoDisplayName

+0

Penso che Colin significhi che è possibile prima configurare i tag, quindi aggiungere righe e le righe saranno colorate. Non è necessario configurare i tag dopo aver aggiunto tutte le righe come implica la risposta di Matt. – akarilimano

Problemi correlati