Python Tkinter自定义字体失效问题求助
Tkinter自定义字体不显示的解决方法
你的问题出在引用字体时用了文件名而非字体的实际名称。pyglet加载字体后,Tkinter需要使用字体本身的正式名称(比如字体文件menu_font.ttf实际可能叫MenuFont或其他名称),而不是ttf文件的名字,找不到对应名称的字体就会自动 fallback 到默认字体。
解决步骤:
确认字体的实际名称
- 用pyglet代码直接获取:
运行这段代码就能拿到字体的真实名称,比如pyglet.font.add_file('menu_font.ttf') # 加载字体并获取它的正式名称 font_obj = pyglet.font.load('menu_font') print(font_obj.name) # 控制台输出的就是你要用到的字体名Menu Sans之类的。 - 或者用系统工具查看:Windows右键打开字体文件看顶部的名称,Mac用字体册打开查看字体名称。
- 用pyglet代码直接获取:
修改代码中的字体引用
把所有font = ('menu_font', 24)改成font = ('实际字体名', 24),或者直接用上面获取到的font_obj.name:pyglet.font.add_file('menu_font.ttf') font_name = pyglet.font.load('menu_font').name # 之后所有控件的font参数都用这个font_name menu_heading.config(bg='white', font=(font_name, 24), width=60, height=2) login_user.config(bg='#14cae3', font=(font_name, 24), width=14, height=2)额外检查点
- 确保
menu_font.ttf和你的Python脚本在同一目录下,否则要写绝对路径(比如C:/fonts/menu_font.ttf)。 - 检查字体文件是否损坏,换个已知正常的ttf文件测试,排除文件本身的问题。
- 确保
内容的提问来源于stack exchange,提问作者Moez Anwar
相关产品推荐
相关产品推荐

