gpt4 book ai didi

python - tkinter treeview 更改列字体大小

转载 作者:行者123 更新时间:2023-12-05 08:27:06 24 4
gpt4 key购买 nike

现在我有这个三码:

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'

但我想做的是将字体大小更改为三列中的 20但是我该怎么做呢?由于在互联网上我阅读了一些有关 Style() 的内容,但这在我的代码中不起作用

最佳答案

我想到了两种解决方案。

第一个是 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

从美学上讲,这两种方法都达到了相同的效果。

关于python - tkinter treeview 更改列字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46932332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com