为什么这不管用?我的计算机上有Consolas字体,但是下面的代码只使用默认字体。它似乎是唯一有效的字体是Courier字体,安装了tkinter。
font_consolas = tkinter.font.Font(root, family="Consolas")使用exists=True运行它将显示以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
font_consolas = tkinter.font.Font(root, family="Consolas", exists=True)
File "C:\Python33\lib\tkinter\font.py", line 86, in __init__
"named font %s does not already exist" % (self.name,))
_tkinter.TclError: named font font1 does not already exist我确实安装了字体,并由
'Consolas' in tkinter.font.families() == True但是,在列表中指定字体是可行的。
font_consolas = ["Consolas", ]发布于 2013-12-02 22:24:40
根据文档,如果断言( Font(...) )为false,则exists=True将引发错误。断言基于新字体的名称,而不是您所基于的字体的名称。
它不是因为Consolas字体不存在而抛出错误,而是它试图用新名称创建新字体,而新字体不存在。由于您不给它命名,它将选择一个唯一的名称,而且根据定义,一个唯一的名称以前不存在,因此您将得到错误。实际上,您是在说“为我的字体创建一个唯一的名称,如果这个唯一的名称不是唯一的,则抛出一个错误”
换句话说,它是在做被记录下来的事情。
https://stackoverflow.com/questions/20337666
复制相似问题