2011-10-24 67 views
10

如何爲treeview小部件設置樣式,以便交替行具有不同的背景顏色,例如,行1,3,5具有白色背景,行2,4,6具有淺藍色 - 灰色背景?我也想設置gridlinesttk樹視圖:備用行顏色

回答

25

幾個月前我有這個相同的問題。

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. 

基本上,你申請一個標籤的所有奇數行,不同的標籤給每個偶數行的,然後配置標籤。


當您創建樹形視圖裏面的物品,添加標籤對他們說:

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

此代碼創建在tree的元素,和tags參數分配標籤「oddrow」的元素。

一旦你創建了「oddrow」和「evenrow」標籤所有的元素,你可以顏色標記:

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

您有任何示例代碼或更多信息?我無法弄清楚如何從文檔描述中實現。 – foosion

+1

@foosion - 我已經更新了我的答案。 –

+0

謝謝。現在,如果我們可以找出如何添加網格線...... :) – foosion

1

我意識到這是一個老問題,但僅僅是爲了記錄配置標籤剛剛創建樹之後(即沒有項目尚未添加到其中)也起作用。隨着物品稍後插入,它們將被賦予適合其「oddrow」或「evenrow」標籤的背景顏色。

+0

用一些代碼解釋 – HaveNoDisplayName

+0

我認爲Colin意味着你可以先配置標籤,然後添加行,並且行將被着色。按照Matt的回答暗示,在添加所有行之後,不需要配置標籤。 – akarilimano