2015-09-18 130 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.htmlhttp://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,因爲我偶然發現了帶有root-Window的* .py-File中的這個錯誤。 無論如何感謝:) – percidae