Tkinter: ウィジェットのフォントを指定する
Tkinterの多くのウィジェットには、 フォントタイプやフォントサイズなどフォントに関して設定する 「font」オプションがあります。
ここではfontオプションを使ってウィジェットのフォントを指定する 方法を解説します。
fontオプションのパラメータ
fontオプションのパラメーターは次の通りです。
第1パラメータのfamily(フォントタイプ)だけが省略不可なので
注意してください。
フォントタイプがデフォルトのフォントで構わない場合は
「""」または「''」のように空文字を指定できます。
パラメータ | 概要 | 省略 | |
---|---|---|---|
family | フォントタイプ | 不可 | ""(デフォルトフォント), "System", "Arial" 等多数 |
size | フォントサイズ | 可 | 10, 20 等の数値 |
weight | 太さ | 可 | "normal"(通常:デフォルト)、 "bold"(太字) |
slant | 斜体 | 可 | "roman"(ローマン体:デフォルト)、 "italic"(斜体) |
underline | 下線 | 可 | "normal"(なし:デフォルト)、 "underline"(下線) |
overstrike | 打ち消し線 | 可 | "normal"(なし:デフォルト)、 "overstrike"(打ち消し線) |
フォントオプションの使用例
フォントオプションの使用例として、 Buttonウィジェットのfontオプションを設定してみます。
■ ボタン1.フォントタイプはデフォルト、サイズは11
■ ボタン2.フォンタオタイプは"MS ゴシック"、サイズは15、太字
以下のサンプルコードの太字部分がfontオプションに関する設定です。
import tkinter as tk # ウィンドウ作成 root = tk.Tk() # タイトル root.title("テスト") # ウィンドウサイズ root.geometry("150x150") # フォントタイプはデフォルト、サイズは11 fonts1 = ("", 11) button1 = tk.Button(root, text="ボタン 1", font=fonts1) button1.place(x=10, y=20, width=100, height=50) # フォントタイプは"MS ゴシック"、サイズは15、太字 fonts2 = ("MS ゴシック", 15, "bold") button2 = tk.Button(root, text="ボタン 2", font=fonts2) button2.place(x=10, y=80, width=100, height=50) # メインループ root.mainloop()
上のコードを実行すると、 文字サイズやフォントタイプの異なる2つのボタンが表示されされます。

タプルで直接指定する
上のコードの「fonts1 = ("", 11)」の部分で、 変数 fonts1に格納しているのは単なるタプルです。 一旦変数 fonts1に格納して指定していますが、 次のように直接タプルを指定することも可能です。
button1 = tk.Button(...., font=("", 11))
どちらでも好きな方で記述して構いません。
ただし一旦変数に格納しておいた方が 他のウィジェットにも指定できますし、 コードも見やすくなると思います。
使用できるフォントタイプを調べる
使用できるフォントタイプを調べるには、 tkinter.fontモジュールのfamilies()関数を使用します。
import tkinter as tk import tkinter.font root = tk.Tk() print(tkinter.font.families())
数多くのフォントタイプが表示されるので、 実行結果のごく一部を紹介します。 (私の環境では約300個のフォントタイプが表示されました)
実行結果
('System', '@System', 'Terminal', '@Terminal', 'FixedSys', '@FixedSys', 'Modern', 'Roman', 'Script', 'Courier', 'MS Serif', 'MS Sans Serif', 'Small Fonts', '@Small Fonts', 'Nachlieli CLM', 'Frank Ruhl Hofshi', 'Miriam Libre', 'Marlett', 'Arial', 'Arabic Transparent', 'Arial Baltic', 'Arial CE', 'Arial CYR', 'Arial Greek', 'Arial TUR', 'Arial Black', 'Bahnschrift Light', 'Bahnschrift SemiLight',...