如何在 tkinter.ttk Treeview 上完全改变背景颜色
·
回答问题
我一直在尝试为我最近使用 tkinter 在 python 3.4.4 中开发的一个项目制作目录浏览器。我不希望背景成为默认颜色,所以我已经着手更改大多数小部件的背景。在我到达 Treeview 之前,我没有遇到任何麻烦。我不太擅长 ttk.Style(),但我仍然设法得到
ttk.Style().configure("Treeview", background="black",
foreground="white")
工作,但这只会改变小部件中包含的区域的背景。 
我检查了它是否是调整大小的问题,但一切似乎都井井有条。我还在网上寻找了类似的问题,以为我做错了,发现两个链接指向 Bryan Oakley 在 2007 年遇到了同样的问题。
Bryan Oakley 回复:如何获得无边框的 ttk::treeview
如何创建一个没有边框的ttk::treeview?
本质上,结论是这是在 Windows 上运行时的错误。因此,我留下了 3 个一般性问题:
我只是完全遗漏了一些明显的东西并且误解了这些帖子(在这里交叉手指),如果是这样,我做错了什么?或者如果这真的是一个错误,那么自 2007 年以来是否有任何解决方案?最后,如果没有任何解决方案,是否有人找到解决问题的方法,无论解决方案多么老套?
Answers
要使 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()
更多推荐

所有评论(0)