簡體   English   中英

tkinter treeview更改列字體大小

[英]tkinter treeview change column font size

現在我有這三個代碼:

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()告訴style = ttk.Style()我們正在創建一種樣式,並將其存儲在變量style內部。

style.configure()允許我們配置剛剛創建的樣式。

"Treeview.Heading"是列標題的元素的名稱。

font=(None, 100)是一種“騙人的”方式,無需更改字體本身即可增加字體大小。 如果要更改字體樣式,請使用所需的字體替換“ None 也許Comic Sans MS


另一個選擇是使用nametofont內置的名為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'

哪個似乎可以達到相同的結果,對嗎?

我們在這里所做的不同實際上是將TkHeadingFont屬性的字體修改為TkHeadingFont並告訴它將其大小更改為100 這意味着,如果您要在其他地方使用該字體,它也會以相同的樣式出現。

但是,這涉及到from tkinter.font import nametofont在程序頂部from tkinter.font import nametofont聲明。

從美學上講,這兩種方法都可以達到相同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM