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

如何在不改变字体与字号的前提下将tk.Label文本设为粗体?

解决Tkinter Label仅加粗不改变原字体字号的问题

问题原因

直接调用label.config(font="bold")时,并非在原有字体基础上添加粗体样式,而是将字体整体替换为Tk默认的"bold"字体配置——这会覆盖原字体的字体族、字号等所有属性,导致字体和字号发生变化。

解决方案

要保留原有字体和字号仅添加粗体,需要先获取标签当前的字体配置,修改其粗体属性后再重新应用:

import tkinter as tk
from tkinter import font

window = tk.Tk()
window.title("Login")
window.geometry("300x200")

label1 = tk.Label(window, text="Username")
# 获取标签当前的字体对象
current_font = font.Font(font=label1.cget("font"))
# 将字体设置为粗体
current_font.config(weight="bold")
# 把修改后的字体应用回标签
label1.config(font=current_font)
label1.grid(row=0, column=0)

label2 = tk.Label(window, text="Password")
label2.grid(row=1, column=0)

window.mainloop()

补充说明

你之前获取到的('font', 'font', 'Font', <string object: 'TkDefaultFont'>, 'bold')中,TkDefaultFont是Tk的默认字体族。如果需要直接基于默认字体设置粗体,也可以这样写:

default_bold_font = font.Font(family="TkDefaultFont", weight="bold")
label1.config(font=default_bold_font)

但直接获取标签当前字体的方式更通用,能适配标签继承的自定义字体配置。

内容的提问来源于stack exchange,提问作者FluidMechanics Potential Flows

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:30:46