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

如何在Python的Tkinter项目中导入下载字体?pyglet失效求替代方案

在Tkinter中使用本地字体的替代方案(无需pyglet)

方法1:Windows系统临时注册字体

直接调用Windows系统API临时注册字体,不用安装到系统也能让Tkinter识别:

import ctypes
from tkinter import Tk, Label

# 替换为你的字体文件绝对路径
font_path = r"C:\Users\YourName\Downloads\CustomFont.ttf"
# 临时注册字体到系统
ctypes.windll.gdi32.AddFontResourceW(font_path)

root = Tk()
# 这里填字体的实际名称(右键字体文件看属性里的「字体名称」,不是文件名)
label = Label(root, text="自定义字体测试", font=("Custom Font Name", 24))
label.pack(padx=20, pady=20)

root.mainloop()

注:这种注册是临时的,重启电脑后会失效,适合临时测试场景。

方法2:用tkinter.font直接加载字体文件(跨平台,需Tk 8.6+)

Tk 8.6及以上版本支持直接通过字体文件路径加载,无需第三方库:

from tkinter import Tk, Label
from tkinter.font import Font

root = Tk()
# 创建自定义字体对象,fname指定字体文件路径
custom_font = Font(
    family="MyCustomFont",  # 自定义一个名称,方便后续引用
    fname=r"/home/user/Downloads/CustomFont.ttf",  # 替换为你的字体路径
    size=24
)
label = Label(root, text="自定义字体测试", font=custom_font)
label.pack(padx=20, pady=20)

root.mainloop()

后续再用这个字体时,直接写font=("MyCustomFont", 24)即可,不用重复指定路径。

方法3:安装字体到系统(永久生效,跨平台)

最稳妥的方式是把字体安装到系统,之后所有程序都能直接调用:

  • Windows:右键字体文件,选择「安装」
  • macOS:双击字体文件,点击「安装字体」
  • Linux:把字体文件复制到/usr/share/fonts(全局生效)或~/.fonts(当前用户生效),然后执行fc-cache -fv更新字体缓存

安装完成后,直接在Tkinter里用字体名称调用:

from tkinter import Tk, Label

root = Tk()
label = Label(root, text系统安装字体测试", font=("Custom Font Name", 24))
label.pack(padx=20, pady=20)

root.mainloop()

内容的提问来源于stack exchange,提问作者Roberto E. Torres

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:54:24