如何在Python的Tkinter中让句子内单个单词加粗
解决Tkinter中名字正常显示、姓氏加粗且自动对齐的问题
你不需要手动计算名字长度来定位,用两个Label结合布局管理器就能轻松实现需求,而且不管名字长度如何变化,姓氏都会自动紧跟在名字右侧。
实现步骤:
- 用一个
Label显示名字,使用默认字体 - 用另一个
Label显示姓氏,设置字体为加粗 - 将两个
Label放在同一个容器(比如Frame)中,用pack或grid布局让它们并排排列 - 最后对容器使用
place来固定整体位置,和你原来的需求一致
完整代码:
from tkinter import Tk, Label, Frame root = Tk() first_name = "John" last_name = "Doe" # 创建一个Frame来包裹两个标签,方便整体定位 name_frame = Frame(root) name_frame.place(x=100, y=100) # 名字标签:正常字体,末尾加空格和姓氏分隔 first_label = Label(name_frame, text=f"{first_name} ") first_label.pack(side="left") # 姓氏标签:设置加粗字体 last_label = Label(name_frame, text=last_name, font=("Arial", 10, "bold")) last_label.pack(side="left") root.mainloop()
补充说明:
pack(side="left")会让两个标签从左到右依次排列,自动适配名字的长度,不需要手动计算坐标- 如果需要调整字体大小,只需要修改
font参数里的数值即可(比如把10改成12) - 如果你想用
grid布局替代pack,可以把两个标签放在Frame的同一行不同列:first_label.grid(row=0, column=0) last_label.grid(row=0, column=1)
内容的提问来源于stack exchange,提问作者Michel Michaud
相关产品推荐
相关产品推荐

