2017-05-06 44 views
2

我一直在試圖爲最近的一個項目創建一個目錄瀏覽器,我正在使用tkinter在python 3.4.4中開發。我不希望背景是默認顏色,所以我已經改變了大部分小部件的背景。我沒有任何麻煩,直到我到了Treeview。我不是ttk.Style()不太好,但我還是設法得到如何完全更改tkinter.ttk Treeview的背景顏色

ttk.Style().configure("Treeview", background="black", 
       foreground="white") 

工作,然而這只是改變包括在微件的區域的背景。 Error

我查看是否是調整大小的問題,但一切似乎都是按順序的。我也找了類似的問題在網上以爲我是做錯了,並發現了兩個鏈接指向布萊恩奧克利有同樣的問題早在2007年

Bryan Oakley Re: how to get a ttk::treeview with no border

how to create a ttk::treeview without a border?

從本質上講,結論是這是在Windows上運行時的錯誤。因此,我留下了3個一般問題:

我是否完全錯過了一些明顯的東西,誤解了這些帖子(如果有的話),如果是的話,我做錯了什麼?或者如果這真的是一個錯誤,自2007年以來是否有解決方案?最後,如果沒有任何解決方案,是否有人有辦法找到解決該問題的方法,無論解決方案多麼棘手?

+1

您是否嘗試過'style.configure( 「樹形」,fieldbackground = 「黑」)'? –

+1

我剛剛嘗試過,它似乎沒有效果 –

+2

我認爲它與您正在使用的ttk主題有關,它應該與主題「clam」('style.them_use(「clam」)')一起使用。 –

回答

2

要使Treeview的背景變爲全黑,Treeview樣式的backgroundfieldbackground選項都需要設置爲黑色。

此外,並非所有的ttk主題都支持fieldbackground選項,如「xpnative」和「vista」主題。

代碼:

import tkinter as tk 
from tkinter import ttk 

root = tk.Tk() 

style = ttk.Style(root) 
# set ttk theme to "clam" which support the fieldbackground option 
style.theme_use("clam") 
style.configure("Treeview", background="black", 
       fieldbackground="black", foreground="white") 

tree = ttk.Treeview(root) 
tree.insert("", 0, "item", text="item") 
tree.pack() 

root.mainloop() 
1

使用使用此代碼來代替:

ttk.Style().configure("Treeview", background="black", 
foreground="white", fieldbackground="black") 

希望這會幫助你,

Yahli。

+2

它不適用於每個ttk主題,「vista」和「xpnative 「似乎不支持」fieldbackground「選項。 –