2011-10-24 13 views
10

Jak ustawić styl dla widżetów treeview, aby wiersze zastępcze miały różne kolory tła, na przykład wiersze 1,3,5 mają białe tło, a wiersze 2,4,6 mają jasnoniebieskie szare tła?Widok drzewa ttk: alternatywne kolory wierszy

Chciałbym również ustawić gridlines.

Odpowiedz

25

Miałem ten sam problem kilka miesięcy temu.

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

Zasadniczo, można zastosować jeden tag do wszystkich nieparzystych wierszy, inny znacznik do każdej z parzystych rzędach, a następnie skonfigurować tagi.


Podczas tworzenia elementów wewnątrz katalogów, dodać do nich znaczniki:

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

Kod ten tworzy element tree i tags argumentem przypisuje tagiem „oddrow” do elementu.

Po utworzeniu wszystkie elementy z „oddrow” i „tagów” ​​evenrow można pokolorować tagi:

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

Czy masz przykładowy kod lub więcej informacji? Nie mogę wymyślić, jak zaimplementować z opisu w dokumentach. – foosion

+1

@foosion - zaktualizowałem swoją odpowiedź. –

+0

Dziękuję. Teraz, jeśli możemy po prostu dowiedzieć się, jak dodać linie siatki ... :) – foosion

1

Zdaję sobie sprawę, że jest to stare pytanie, ale tylko na zapis konfiguracji tagów zaraz po utworzeniu drzewa (tzn. gdy jeszcze nie dodano do niego żadnych elementów) również działa. Gdy elementy zostaną wstawione później, otrzymają kolor tła odpowiedni do ich tagu "oddrow" lub "evenrow".

+0

objaśnienia z kodem – HaveNoDisplayName

+0

Myślę, że Colin miał na myśli, że możesz najpierw skonfigurować znaczniki, a następnie dodać wiersze, a wiersze będą kolorowe. Nie trzeba konfigurować znaczników po dodaniu wszystkich wierszy, jak sugeruje odpowiedź Matta. – akarilimano

Powiązane problemy