首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tkinter.font.Font()不工作

tkinter.font.Font()不工作
EN

Stack Overflow用户
提问于 2013-12-02 20:57:07
回答 1查看 1.1K关注 0票数 3

为什么这不管用?我的计算机上有Consolas字体,但是下面的代码只使用默认字体。它似乎是唯一有效的字体是Courier字体,安装了tkinter。

代码语言:javascript
复制
font_consolas = tkinter.font.Font(root, family="Consolas")

使用exists=True运行它将显示以下错误:

代码语言:javascript
复制
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

我确实安装了字体,并由

代码语言:javascript
复制
'Consolas' in tkinter.font.families() == True

但是,在列表中指定字体是可行的。

代码语言:javascript
复制
font_consolas = ["Consolas", ]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-02 22:24:40

根据文档,如果断言( Font(...) )为false,则exists=True将引发错误。断言基于新字体的名称,而不是您所基于的字体的名称。

它不是因为Consolas字体不存在而抛出错误,而是它试图用新名称创建新字体,而新字体不存在。由于您不给它命名,它将选择一个唯一的名称,而且根据定义,一个唯一的名称以前不存在,因此您将得到错误。实际上,您是在说“为我的字体创建一个唯一的名称,如果这个唯一的名称不是唯一的,则抛出一个错误”

换句话说,它是在做被记录下来的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20337666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档