Python 如何在tkinter中使用自定义字体路径?仅限窗口
我想使用与python程序位于同一目录中的字体,但实际上python会在windows fonts文件夹中搜索它,我应该如何修复它 (我想为我的程序提供字体路径或导入字体以在标签中使用它) 例如: 在这里,如果字体文件夹中的字体Python 如何在tkinter中使用自定义字体路径?仅限窗口,python,python-3.x,windows,tkinter,fonts,Python,Python 3.x,Windows,Tkinter,Fonts,我想使用与python程序位于同一目录中的字体,但实际上python会在windows fonts文件夹中搜索它,我应该如何修复它 (我想为我的程序提供字体路径或导入字体以在标签中使用它) 例如: 在这里,如果字体文件夹中的字体myfont,我的程序将工作,但如果不工作,它将以默认字体显示 从tkinter导入* root=Tk() my_lab=标签(根,字体=(“myfont”,10)).place(x=1,y=1) 我使用了font=(f“path/to/font”,10),但它不起作用
myfont
,我的程序将工作,但如果不工作,它将以默认字体显示
从tkinter导入*
root=Tk()
my_lab=标签(根,字体=(“myfont”,10)).place(x=1,y=1)
我使用了font=(f“path/to/font”,10)
,但它不起作用
问题:如何在tkinter中使用自定义字体路径仅限Windows
参考:
-
def loadfont(fontpath,private=True,enumerable=False)
将函数更改为Python 3:
def loadfont(fontpath, private=True, enumerable=False):
...
# For 3.x, you have to convert the isinstance checks to bytes and str
if isinstance(fontpath, bytes):
pathbuf = create_string_buffer(fontpath)
AddFontResourceEx = windll.gdi32.AddFontResourceExA
elif isinstance(fontpath, str):
pathbuf = create_unicode_buffer(fontpath)
AddFontResourceEx = windll.gdi32.AddFontResourceExW
...
尝试变量private=False
,enumerable=True
,并确保输入的字体名称正确。
运行函数loadfont(…)
,如:
loadfont("path//to//font.ttf", private=False, enumerable=True)
这回答了你的问题吗?事实上,它只是说使用照片代替,因为我的gui程序有很多窗口,我不能在其中使用照片,除非我用类编写它,我不知道如何,实际上我不想让它可编辑,你知道如果有人更改照片,我的程序将强制更改“只是说使用照片代替”:您也读过最后一条评论了吗?
fontload(“path\\to\\font.tff”)
:应该是.ttf
。尝试不同的参数private=False,enumerable=True
是的,现在它可以工作了,非常感谢,我应该如何接受您的评论作为答案显示给其他人?是的,实际上它已经解决并正确显示了,但文本大小已更改。它与编译有关吗?不编译“它与编译相关吗?”:编译版本的行为不同是一个常见问题。它们经常丢失相关文件,并退回到默认值或全部失败。您是否仔细检查过,您的.ttf
文件与loadfont(…
使用的文件完全相同?请编辑答案以显示您使用的loadfont(…
参数。是的,它们是相同的,在我的电脑上也可以,但是当我在另一台电脑上运行我的程序时,问题就出现了。我应该在答案中编辑什么?您已经编辑了它