我想到了两种解决方案。
首先是使用Style(),正如你所指出的,如果我们想改变它,我们可以设置Treeview.Heading文本的样式。
这看起来像下面这样:
from tkinter import *
import tkinter.ttk as ttk
root = Tk()
tree = ttk.Treeview(root)
tree.pack()
style = ttk.Style()
style.configure("Treeview.Heading", font=(None, 100))
tree["columns"] = ("one", "two", "three")
tree.column("one", width=150)
tree.column("two", width=150)
tree.column("three", width=150)
tree.heading("one", text="Naar")
tree.heading("two", text="Spoor")
tree.heading("three", text="Vetrektijd")
tree['show'] = 'headings'
这通过在小部件内设置特定元素的样式来工作。让我们分解一下。
style = ttk.Style() 告诉 tkinter 我们正在创建一种样式并将其存储在变量 style 中。
style.configure() 允许我们配置我们刚刚创建的样式。`
"Treeview.Heading" 是列标题元素的名称。
font=(None, 100) 是一种增加字体大小而无需更改字体本身的“欺骗”方式。如果您想更改字体样式,请使用您想要的任何字体替换 None。也许Comic Sans MS。
另一种选择是使用 tkinter 内置的一个名为 nametofont 的函数,它让我们在更深层次上处理字体。
我们可以这样做:
from tkinter import *
from tkinter.font import nametofont
import tkinter.ttk as ttk
root = Tk()
tree = ttk.Treeview(root)
tree.pack()
#nametofont("TkHeadingFont").configure(size=100)
tree["columns"] = ("one", "two", "three")
tree.column("one", width=150)
tree.column("two", width=150)
tree.column("three", width=150)
tree.heading("one", text="Naar")
tree.heading("two", text="Spoor")
tree.heading("three", text="Vetrektijd")
tree['show'] = 'headings'
这似乎达到了相同的结果,对吧?
我们在这里所做的不同之处实际上是将 tkinter 属性的字体修改为 TkHeadingFont 并告诉它将其大小更改为 100。这意味着如果您要在其他地方使用该字体,它也会以相同的样式出现。
这涉及到必须在程序顶部声明from tkinter.font import nametofont。
从美学上讲,任何一种方法都可以达到相同的效果。