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

在Python3.4.4的Tkinter项目中创建目录浏览器时,作者遇到改变Treeview背景颜色的问题。尝试使用ttk.Style().configure设置背景色无效。经过研究发现,这可能是Windows上的一个bug。解决方案是同时设置`background`和`fieldbackground`为黑色,且某些主题可能不支持`fieldbackground`。以下代码展示了如何在"clam"主题下设置黑色背景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我一直在尝试为我最近的一个项目制作一个目录浏览器,这个项目是我用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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值