1. ホーム
  2. python

[解決済み] Python3 Tkinterのフォントが動作しない

2022-02-07 11:43:20

質問

python3.3とtkinterを使用しており、python3-tkパッケージがインストールされています。ほとんどのドキュメントで、古い "import tkFont" が使われていますが、これはもう動作しません。

これで動くはずなのですが。

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

しかし、2行目でこのような例外が発生します。

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のドキュメントでした。

残念ながら、私はまだ何が間違っているのかわかりません。

どうすればいいですか?

をインポートする必要があります。 font ではなく fonts . また、投稿されたコードが実際のコードである場合、フォントを扱う前にルートウィンドウを作成することを怠っています。最初にルート・ウィンドウを作成する必要があります。

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