如何使用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
相关产品推荐
相关产品推荐

