我一直在尝试为我最近的一个项目制作一个目录浏览器,这个项目是我用Tkinter在Python3.4.4中开发的。我不希望背景是默认颜色,所以我已经开始改变大多数小部件的背景。我到了树上才有麻烦。我不太擅长ttk.style(),但我还是设法ttk.Style().configure("Treeview", background="black",
foreground="white")
但是,要工作,这只会更改小部件中包含的区域的背景。
我检查了一下这是否是一个调整大小的问题,但一切似乎都很正常。我也在网上寻找类似的问题,认为我做错了,发现两个链接指向布莱恩奥克利,在2007有同样的问题。
Bryan Oakley Re: how to get a ttk::treeview with no border
how to create a ttk::treeview without a border?
从本质上说,结论是这是在windows上运行时的一个bug。正因为如此,我有3个一般问题:
我只是完全错过一些明显和误解这些职位(交叉手指这里),如果是这样,我做错了什么?或者,如果这真的是一个bug,那么自2007年以来,是否有任何解决方案?最后,如果没有任何解决方案,是否有人找到了解决问题的方法,不管解决方案有多老套?
最佳答案:
要使TreeView的背景完全变黑,TreeView样式的background和fieldbackground选项都需要设置为黑色。
此外,并非所有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()