tkinter改变风格问题

时间:2017-10-26 14:34:54

标签: python tkinter treeview

现在我有了这段代码:

tree = ttk.Treeview(root)
style = ttk.Style()
style.configure("Treeview", foreground='#00337f',background="#ffc61e")
style.configure("Treeview.Heading", background="purple",foreground='#00337f',font=(20))
tree["columns"] = ("one", "two", "three")
tree.column("one", width=150)
tree.column("two", width=150)
tree.column("three", width=210)
tree.heading("one", text="Naar")
tree.heading("two", text="Spoor")
tree.heading("three", text="Vetrektijd")
tree.tag_configure('monospace', font=20)
tree['show'] = 'headings'
tree.place(x=0, y=0)

除了3件事以外,一切正常:

  • 每当我运行程序时,树视图背景仍然是白色的,但它从一开始就需要是黄色的。现在,只要树视图填满,它就会变黄。

  • 第二个问题是我将标题的背景更改为紫色,如上面的代码所示,但它仍然是白色的。那我怎么能把它变成紫色呢?

  • 第三个问题是树视图填满后仍有一行:

enter image description here

1 个答案:

答案 0 :(得分:0)

第一个问题可以通过在fieldbackground="#ffc61e"样式的配置中添加Treeview来解决。背景选项仅对应于项目的背景。但是,并非所有主题都考虑fieldbackground选项(请参阅第二个问题)。

第二个问题是主题相关。你正在使用的主题不支持标题的颜色变化,所以我建议你使用另一个像'蛤蜊'或者' alt':style.theme_use('clam')

要删除标题中按钮的边框,可以将边框宽度设置为0: style.configure("Treeview.Heading", borderwidth=0)

不幸的是,这对Treeview边框不起作用,因此解决方法是将边框的所有颜色设置为背景颜色:

style.configure("Treeview", lightcolor="#ffc61e", bordercolor="#ffc61e",
                darkcolor="#ffc61e")