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

Python使用option_add设置字体后如何重置为默认值

Tkinter 字体重置回默认状态方案

报错原因

触发类型报错来自两处代码问题:

  • 重置字体的代码缺失右括号,存在语法错误
  • Tk字体解析规则以空格作为参数分隔符,Courier New字体名包含空格且未做特殊包裹,解析程序会将Courier识别为字体名,把后续的New识别为字号参数,因此触发「期望获得整数类型值,但实际得到了'New'」的报错。

之前设置Arial, 14未报错,是因为Arial字体名本身不含空格,虽然多余的逗号属于不规范写法,解析器仍能识别到后续的14作为字号,属于偶然生效,不符合Tk字体配置规范。

实现方法

修复指定字体的报错

如果仅需要修复报错、将字体指定为10号Courier New,需给带空格的字体名加大括号包裹,去掉多余逗号,补全右括号:

window.option_add("*Font", "{Courier New} 10")

真正重置为系统默认字体(推荐)

硬编码Courier New 10不属于恢复默认——不同操作系统、不同控件的原生默认字体、字号并不统一,硬编码值会破坏界面原生样式。要完全回到自定义字体前的状态,在关闭Frame4时清除之前通过option_add添加的自定义配置即可,Tk会自动回退到默认字体规则:

# 关闭Frame4时执行
Frame4.destroy()
# 清除自定义option配置,自动回退默认样式
window.option_clear()

如果不需要清除全部自定义配置,可在初始化Frame4前提前保存默认字体值,关闭框架时将字体重新设置为预存的默认值即可。

内容的提问来源于stack exchange,提问作者Harold Meneley

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:21:33