tkinter treeview更改列字体大小

时间:2017-10-25 12:22:00

标签: python tkinter treeview

现在我有三个代码:

public defaultDate: Date = new Date();
ngOnInit() {
    this.defaultDate.setDate(this.defaultDate.getDate() - 5);
}

但我想要做的是将字体大小更改为三列中的20列 但我怎么能这样做? 因为在互联网上我读了一些关于Style()但在我的代码中不起作用的东西

1 个答案:

答案 0 :(得分:2)

有两种解决方案可供选择。

第一个是您指出的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)是一个" cheaty"增加字体大小而不必更改字体本身的方法。如果您想要使用您想要的任何字体更改字体样式替换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

这两种方法在美学上都能达到相同的效果。