2015-09-18 2 views
2

Я использую python 3.3 с tkinter, а пакет python3-tk установлен. В большинстве документов используется старый «import tkFont», который больше не работает.Python3 Tkinter шрифты не работают

Это должно работать:

from tkinter import font 
appHighlightFont = font.Font(family='Helvetica', size=12, weight='bold') 
font.families() 

Однако, я получаю это исключение на второй линии:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python3.3/tkinter/font.py", line 92, in __init__ 
    root.tk.call("font", "create", self.name, *font) 
AttributeError: 'NoneType' object has no attribute 'tk' 

Я проверил http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/fonts.html и http://www.tkdocs.com/tutorial/fonts.html, которые были наиболее полезными TkInter документы до сих пор.

К сожалению, я до сих пор не могу понять, что я делаю неправильно.

ответ

7

Необходимо ввести font не fonts. Кроме того, если код, который вы отправили, является фактическим кодом, вы пренебрегаете созданием корневого окна перед работой со шрифтами. Сначала необходимо создать корневое окно.

from tkinter import font 
import tkinter as tk 
... 
root = tk.Tk() 
... 
appHighlightFont = font.Font(family='Helvetica', size=12, weight='bold') 
font.families() 
+0

Вы правы, я редактировал код выше. Я все еще получаю сообщение об ошибке. – percidae

+1

@percidae: перед началом работы со шрифтами необходимо создать корневое окно. –

+0

Теперь это работает. Wierd, так как я наткнулся на эту ошибку в * .py-файле с корневым окном. Спасибо в любом случае :) – percidae

Смежные вопросы