我在开发机器上使用字体,但是,当我将应用程序打包为exe并将其部署到另一台没有安装该字体的计算机上时,字体呈现将转移到默认状态。有什么方法可以将字体与exe捆绑在一起,并让PySimpleGUI使用它而不是试图在系统中定位字体(这意味着需要先安装字体)?有什么解决办法吗?
import PySimpleGUI as sg
sg.set_options(font=['Inder',10]) 发布于 2021-05-25 09:20:50
您可以使用库pyglet添加字体文件,也可以使用选项--add-data <SRC;DEST or SRC:DEST> of PyInstaller来绑定字体文件。
要添加到可执行文件中的其他非二进制文件或文件夹。路径分隔符是特定于平台的,使用
os.pathsep(在Windows上是;,在大多数unix系统上是:)。此选项可多次使用。
更新使用tkinter.filedialog模块的问题。在代码之前设置COINIT_APARTMENTTHREADED模式。
演示代码
import pyglet
from pyglet.libs.win32 import constants
import PySimpleGUI as sg
constants.COINIT_MULTITHREADED = 0x2 # 0x2 = COINIT_APARTMENTTHREADED
# pyglet.font.add_file(r".\MerryChristmasFlake.ttf")
# pyglet.font.add_file(r".\MerryChristmasStar.ttf")
sg.theme("DarkBlue3")
font1 = ("Merry Christmas Flake", 40)
font2 = ("Merry Christmas Star", 40)
layout = [
[sg.Text("Merry Christmas Flake", font=font1)],
[sg.Text("Merry Christmas Star", font=font2)],
[sg.Input(), sg.FolderBrowse()],
]
window = sg.Window('Title', layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
print(event, values)
window.close()

经过两行未加标记的评论后,

注意:从https://www.1001freefonts.com/d/17982/merry-christmas.zip下载的字体文件,并将这两个字体文件放到与主脚本相同的路径上。
https://stackoverflow.com/questions/67682406
复制相似问题