You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用cget获取Tkinter标签的字体族与字号

如何使用cget获取Tkinter标签的字体族与字号

嘿,这个问题其实很简单~你已经知道用cget()获取标签的文本了,那获取字体属性的思路其实类似,不过因为字体是一个Font对象,所以可以直接对这个对象用cget()方法来拿你想要的属性。

你看,你代码里已经创建了my_font这个Font实例,直接对它调用cget(),传入对应的属性名就能拿到字体族和字号啦。当然,也可以从标签的font属性里取出Font对象再操作,两种方式都可行。

给你修改一下代码,加上获取字体属性的部分:

from tkinter import *
from tkinter.font import Font
root = Tk()
root.title("Font window")
root.geometry("500x500")

my_font = Font(
    family = 'Helvetica',
    size = 30,
    weight = 'bold',
    slant = 'roman',
    underline = 1,
    overstrike = 0
)
my_label = Label(root, text="Peter Pan", fg="Green", bg="White", font = my_font)

value = my_label.cget("text")
print(value)

# 方法1:直接从已创建的Font对象获取
font_family = my_font.cget("family")
font_size = my_font.cget("size")
print(f"字体族: {font_family}, 字号: {font_size}")

# 方法2:从标签的font属性中取出Font对象再获取
label_font = my_label.cget("font")
label_family = label_font.cget("family")
label_size = label_font.cget("size")
print(f"从标签获取的字体族: {label_family}, 字号: {label_size}")

my_label.pack()
root.mainloop()

运行这段代码,你就能在控制台看到字体族和字号的输出啦。另外要注意,如果你的标签字体是用字符串格式(比如font=("Arial", 20))设置的,那my_label.cget("font")会返回一个元组,这时候你可以直接通过索引取元素:family = label_font[0],size = label_font[1]。不过你现在用的是Font对象,所以用cget()是最直接的方式。

备注:内容来源于stack exchange,提问作者user1367236

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:54:37