tkinterで配置するテキストは、fontオブジェクトを使用することで下図のように文字のフォントやサイズだけでなく様々な詳細オプションを指定することができます。
こんな感じで書体やアンダーバーなどを設定できます!
本記事では、fontの使い方を分かりやすく解説していきます!
プログラミングを効率的に学びたい方は口コミで人気の優良プログラミングスクールを徹底解説していますので参考にしてみてください!
学生や30代の方にもおすすめなプログラミングスクールがあります!
fontオブジェクトで設定できるオプション
fontオプションで設定できるオプション一覧は以下のようになっています。
オプション | 変更箇所 |
family | 文字のフォントを指定 |
size | フォントサイズを指定 |
weight |
“normal”:デフォルトの太さにする場合 |
slant | “roman”:デフォルトのまま “italic”:斜体にする場合 |
underline | “False” or “0”:下線なし “True” or “1”:下線あり |
overstrike | “False” or “0”:取消線なし “True” or “1”:取消線あり |
フォントの指定方法
tkinterでフォントを変更したい場合には、tk.font.Font() を使用します。
使い方としては、まず初めにtkinter.fontをインポートします。
import tkinter.font as font
次にtk.font.Font()の引数として、先ほど表で示したオプションを任意の数だけ指定した型を作成します。(下記は、フォント、下線、斜体を指定する場合の引数)
インスタンス名=tk.font.Font ( family="MS Gothic" , underline = True , slant = "italic" )
その後、作成した型をフォント設定を変更したいウィジェットの引数として font= “作成した型名” を定義することで変更できます!
実際のプログラム
では実際にプログラムを書いてみましょう~!
変更する場合は以下のように記載します。
今回はフォントに「Ink Free」というフォントを選択し、下線と斜体を適用してみます!
import tkinter as tk
import tkinter.font as font
def main(root):
#文字に適用したいフォントの型を作成
myfont=tk.font.Font(family="Ink Free",underline=True,slant="italic")
#作成した型をラベルに当てはめる
label=tk.Label(root,text="Good Morning!",font=myfont)
label.pack()
if __name__ == '__main__':
root = tk.Tk()
main(root)
root.mainloop()
(実行結果)
(参考:通常、何も指定していない場合のフォントは以下のようになっています。)
また、余談ですが取消線を指定した場合はこのように表示されます!
myfont = tk.font.Font ( family="Ink Free" , overstrike = True )
フォントの一例
他にもいくつかフォントを紹介してみます!
すべて「Good Morning!」を表示させています。
このような形で、フォントを色々と変えることができます!
最後の「Wingdings 3」を使うと文字化けしたような記号で表示されます(笑)
他にも様々なフォントがあるのでデザインに合わせて適切なものを選択して使ってください~!
どのような種類があるかは次の段落で説明していきます!
familyで指定できるfontの種類
先ほども述べたように、フォントは非常に多くの種類があります。その一部を下図に示します。
下記に示したプログラムをコピーして実行してみて下さい!
そして出力されたフォントから是非お気に入りのものを選択し、実際に利用してみて下さい!
余談ではありますが、フォントを全て表示させるためのプログラムはこんな感じです!
import tkinter as tk
import tkinter.font as font
def main(root):
row_max = 36
tk.Frame(root)
r = 0
c = 0
for color in FONTS:
label = tk.Label(text=color,
font=(color,8, "bold"))
label.grid(row=r, column=c, sticky="ew")
r += 1
if r > row_max:
r = 0
c += 1
print(FONTS)
if __name__ == '__main__':
root = tk.Tk()
root.title("Named Font Chart")
FONTS = list(font.families(root))
main(root)
root.mainloop()
フォントを一覧から選択したい場合
フォントの一覧を表示させて、任意のフォントを選択して変更できるようにする方法をこちらの記事で紹介しています!
是非参考にしてみてください!
テキストにリンクを付けたい場合
別記事で、テキストラベルにリンクを付ける方法も解説していますので是非参考にしてみて下さい!
以上となります。最後まで見ていただきありがとうございました!