回答问题

我一直在尝试为我最近使用 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 样式的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()
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐