Python

[Python/Tkinter] テキストのフォントを一覧から取得する方法!

今回は、フォントの一覧を表示して任意のフォントをダブルクリックすることでテキストのフォントを変更させる方法を紹介していこうと思います。

フォントの一覧があった方が、見やすいですし変更したい場合に使いやすいですよね。

フォント一覧を取得する

まずは、選択肢としてフォント一覧を表示させる必要があります。

そのためのフォント一覧を取得するには、下記メソッドを用います。

fonts_list = tk.font.families()

list内の選択された要素を取得する

フォント一覧が表示されたら、その中から任意のフォントを選択します。そこで選択したフォントの情報を取得するためには .curselection メソッドを用います。

selection = list.curselection()

すらいむ管理人

ここで返される値はリスト型みたいです!

フォントを取得できるプログラム

では実際にフォント一覧からフォントを選択できるプログラムを書いてみます!

import tkinter as tk

class CHANGE_FONT():
    def gen_window(self):
        root=tk.Tk()
        root.geometry("400x200")
        root.title("Python")
        #font一覧を取得
        self.available_fonts = tk.font.families()
        self.fonts_list = tk.Listbox(root)
        self.fonts_list.pack()
        #font一覧を表示
        for font in self.available_fonts:
            self.fonts_list.insert(tk.END, font)
        #ダブルクリックで選択機能をバインド
        self.fonts_list.bind("<Double-Button-1>", self.change_font)
        #Labelを作成
        self.fontlabel = tk.Label(root,text="Choose your Font")
        self.fontlabel.pack()
        root.mainloop()
        
    def change_font(self, event):
        #選択したLabelを反映
        selection = self.fonts_list.curselection()
        self.fontlabel.config(font=(self.available_fonts[selection[0]],"16"))

ins = CHANGE_FONT()
ins.gen_window()

(実行結果)

result of fontchooser

このようなウィンドウが表示されたと思います!

実際に好きなフォント名をダブルクリックしてみてください。
下側に表示されている “choose your font” のテキストのフォントが変わると思います!

以上となります!
最後まで見ていただきありがとうございました!

Tkinter の font に関してはコチラの記事でも詳しく解説していますので興味がある方は是非参考にしてみてください!

[Python/tkinter] tk.fontでフォント(フォント、下線、斜体など)を設定してみよう!本記事では、tkinter.fontを用いてテキストのフォントを変更する方法を分かりやすく解説しています。フォントの種類や太字にする方法、アンダーバー(下線)を引く方法なども解説しています。tkinter.font.Font()...