繁体   English   中英

如何在tkinter.ttk Treeview上完全更改背景颜色

[英]How to fully change the background color on a tkinter.ttk Treeview

我一直在尝试为我最近的一个项目创建一个目录浏览器,我正在使用tkinter在python 3.4.4中进行开发。 我不希望背景成为默认颜色,所以我已经改变了大多数小部件的背景。 在我到Treeview之前,我没有遇到任何麻烦。 我对ttk.Style()不太好,但我还是设法得到了

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

工作,但这只会改变小部件中包含的区域的背景。 错误

我检查了它是否是一个调整大小的问题,但一切似乎都是有序的。 我也在网上寻找类似的问题,认为我做错了,发现两条指向Bryan Oakley的链接在2007年有同样的问题。

Bryan Oakley Re:如何获得没有边框的ttk :: treeview

如何创建没有边框的ttk :: treeview?

基本上,结论是这是在Windows上运行时的错误。 因此,我留下了3个一般性问题:

我只是完全错过了一些明显的东西并误解了这些帖子(在这里交叉手指),如果是这样,我做错了什么? 或者,如果这确实是一个错误,自2007年以来有没有解决方案呢? 最后,如果没有任何解决方案,那么无论解决方案多么糟糕,有没有人能找到解决问题的方法?

要使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()

使用此代码代替:

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

希望这对你有帮助,

Yahli。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM