Tkinterのfontについて解説します。
自身の環境で使えるフォントファミリーの調べ方はコチラの記事を参考にして下さい。
Tkinterで使用できるフォントファミリーを表示させるスクリプトの紹介
Tkinterでfontを設定する方法
アプリ全体のfontを一括していする
fontはTkinterにおけるオプションの一つです。
Tkinterは各オプションに予めデフォルトの値が割り振られています。
このデフォルトの値を変更するにはoption_add()メソッドを使用します。
下記コードはoption_add()を使用してアプリ全体のfontを変更するサンプルコードです。
import tkinter as tk
root = tk.Tk()
root.option_add('*font', ('Arial Black', 20))
button= tk.Button(root, text="漢字ひらがな012",)
button.pack()
root.mainloop()
このコードはrootに対してroot.option_add(‘*font’, (‘Arial Black’, 20))
でフォントファミリーとフォントのサイズをオプション指定しています。

option_add()メソッドでfontのオプションを設定するには
option_add(’*font’, (‘family’, size, weight, slant, underline, overstrike))と書きます。
内’family’は必須です。フォントファミリーを文字列として指定します。
後述するFontクラスを使わない限りキーワード指定は出来ず、位置指定で指定する事になります。
fontの情報はタプルでまとめて指定します。
ヴィジェット毎に指定する
ヴィジェット毎にオプションを指定するにはキーワード引数を
font=(フォントの情報)
とタプルで指定します。下記サンプルコードになります。
import tkinter as tk
root = tk.Tk()
button_a= tk.Button(root, text="漢字ひらがな012")
button_a.pack()
button_b= tk.Button(root, text="漢字ひらがな012", font=('Arial Black', 20))
button_b.pack()
root.mainloop()

Fontクラスを使用する
Font情報をまとめることが出来るFontクラスを使用するにはtkinter.fontをインポートする必要があります。
Fontクラスで使用してFont情報をインスタンス化して使用するサンプルコード
import tkinter as tk
import tkinter.font
root = tk.Tk()
font_pattern = tkinter.font.Font(family='Arial Black', size=20)
button= tk.Button(root, text="漢字ひらがな012", font=font_pattern)
button.pack()
root.mainloop()
Fontクラスを使う事でFontクラスが持っているメソッドを使用する事ができますが、あまり使う事がありませんので割愛します。
font情報の詳細
font情報の詳細です。
family
フォントファミリーを指定します。何も設定していない(デフォルト状態)のフォントファミリーを調べるにはFontクラスのactual()メソッドを使用するのが簡単です。
import tkinter as tk
import tkinter.font
root = tk.Tk()
font_pattern = tkinter.font.Font(family='')
print(font_pattern.actual("family"))
root.mainloop()
上記コードでデフォルトのfamilyが出力されます
Fontクラスを使用する場合はfamily=’フォント名’で指定できます。
Fontクラスを使用しない場合は情報を格納するタプル内で1番目に指定します。
size
フォントの大きさをpointで指定します。デフォルトの数値は12になっています。
デフォルトのsizeを調べるサンプルコード
import tkinter as tk
import tkinter.font
root = tk.Tk()
font_pattern = tkinter.font.Font(family='')
# button= tk.Button(root, text="漢字ひらがな012", font=font_pattern)
# button.pack()
print(font_pattern.actual("size"))
root.mainloop()
Fontクラスを使用する場合はsize=整数で指定できます。
Fontクラスを使用しない場合は情報を格納するタプル内で2番目に整数で指定します。
weight
値をboldにする事で文字を太字にする事ができます。
Fontクラスを使用する場合はweigth=”bold”で指定できます。
Fontクラスを使用しない場合は情報を格納するタプル内で3番目以降に”bold”を追加する事で指定できます。指定しない場合は太字にはなりません。
import tkinter as tk
import tkinter.font
root = tk.Tk()
font_pattern = tkinter.font.Font(weight="bold")
button= tk.Button(root, text="漢字ひらがな012", font=font_pattern)
button.pack()
root.mainloop()
slant
値をitalicにする事で文字を斜体にする事ができます。
Fontクラスを使用する場合はslant=”italic”で指定できます。
Fontクラスを使用しない場合は情報を格納するタプル内で3番目以降に”italic”を追加する事で指定できます。指定しない場合は斜体にはなりません。
import tkinter as tk
import tkinter.font
root = tk.Tk()
font_pattern = tkinter.font.Font(slant="italic")
button= tk.Button(root, text="漢字ひらがな012", font=font_pattern)
button.pack()
root.mainloop()

underline
文字に下線を引きます。
Fontクラスを使用する場合はunderline=Trueで指定できます。
また、underline=1でも指定する事ができ、underline=”true”でも可能です。
Fontクラスを使用しない場合は情報を格納するタプル内で3番目以降に”underline”を追加する事で指定できます。指定しない場合は下線は引かれません。
import tkinter as tk
import tkinter.font
root = tk.Tk()
font_pattern = tkinter.font.Font(underline=True)
button= tk.Button(root, text="漢字ひらがな012", font=font_pattern)
button.pack()
root.mainloop()
overstrike
文字に打ち消し線を入れる事ができます。

Fontクラスを使用する場合はoverstrike=Trueで指定できます。
また、overstrike=1でも指定する事ができ、overstrike=”true”でも可能です。
Fontクラスを使用しない場合は情報を格納するタプル内で3番目以降に”overstrike”を追加する事で指定できます。指定しない場合は下線は引かれません。