我一直在尝试为我最近的一个项目创建一个目录浏览器,我正在使用tkinter在python 3.4.4中进行开发。我不希望背景成为默认颜色,所以我已经改变了大多数小部件的背景。在我进入Treeview之前,我没有遇到任何麻烦。我对ttk.Style()不太好,但我仍然设法得到
ttk.Style().configure("Treeview", background="black",
foreground="white")
我检查了它是否是一个调整大小的问题,但似乎一切都井然有序。我也在网上寻找类似的问题,认为我做错了,发现两条指向Bryan Oakley的链接在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年以来有没有解决方案呢?最后,如果没有任何解决方案,那么无论解决方案多么糟糕,有没有人能找到解决问题的方法?
答案 0 :(得分:5)
要使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()
答案 1 :(得分:1)
使用此代码代替:
ttk.Style().configure("Treeview", background="black",
foreground="white", fieldbackground="black")
希望这对你有帮助,
Yahli。