如何在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
相关产品推荐
相关产品推荐

