【Tkinter】ラベル(Label)の使い方

【Tkinter】ラベル(Label)ウィジェットの使い方

Tkinterで文字や画像を表示することができるラベル(Label)ウィジェットの使い方について解説します。最も基本的なウィジェットですので、Tkinterを使い始めたばかりの方はラベル(Label)から使ってみるのがおすすめです。

目次

文字列の表示

LabelはTkinterのウィジェットクラスの1つで、文字や画像を表示することができます。

Tkinterではウィジェットクラスから個別のインスタンスを生成して配置するには次にように記述します。

import tkinter as tk

 # tk.Frameを継承したApplicationクラスを作成
class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)

        # ウィンドウの設定
        self.master.title("ウィンドウのタイトル")

        # 実行内容
        self.pack()
        self.create_widget()

    #create_widgetメソッドを定義
    def create_widget(self):

        # label1ウィジェットを作成
        self.label1 = tk.Label(self,text="表示したい文字列") # label1に表示したい文字を渡してインスタンスを生成
        self.label1.pack() # label1ウィジェットを配置

if __name__ == "__main__":
    root = tk.Tk()
    app = Application(master=root)
    app.mainloop()

このように”表示したい文字列”の部分に記述した文字列を表示することができます。

画像の表示

Labelウィジェットで画像を表示したい場合は、Labelインスタンス生成時のimage引数に表示したい画像へのパスを指定します。

試しに先ほどのコードに新たに画像を含むlabel2ウィジェットを追加してみましょう。

import tkinter as tk

 # tk.Frameを継承したApplicationクラスを作成
class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)

        # ウィンドウの設定
        self.master.title("ウィンドウのタイトル")

        # 実行内容
        self.pack()
        self.create_widget()

    # create_widgetメソッドを定義
    def create_widget(self):

        # label1ウィジェットを作成
        msg = "うへっへへへうへへへへへ\nでへへェェうへへェェうヒィッ\nうひうひうひうはァッ\nでへっでへっどぅひひひひひ\nふっふふはっひひお\nへおへおへへェェッ"

        self.label1 = tk.Label(self,text=msg, font="24")
        self.label1.pack(side="right")

        # label2ウィジェットを作成
        self.icon = tk.PhotoImage(file="img/denchan.png") # 画像のパスをicon変数に代入

        self.label2 = tk.Label(self,image=self.icon, bg="white") # image引数に表示したい画像のパスを指定してインスタンスを生成
        self.label2.pack(side="left") # label2ウィジェットを配置

if __name__ == "__main__":
    root = tk.Tk()
    app = Application(master=root)
    app.mainloop()

Labelウィジェットで画像を表示することができました。

ラベル(Label)で使えるオプション引数

Labelインスタンスを生成する際は次のオプション引数を使用することができます。

属性 説明
anchor テキストを配置する位置を指定します tk.CENTER(中央)
tk.W(左寄せ)
tk.E(右寄せ)
tk.N(上寄せ)
tk.S(下寄せ)
tk.NW(左上)
tk.SW(左下)
tk.NE(右上)
tk.SE(右下)
bg or background 背景の色を指定します red,blue,grayなど
bitmap 表示する bitmap を指定します
bd or borderwidth ボーダーの幅を指定します 数値(ピクセル単位)
cursor カーソルの形を指定します
font テキストを表示する際のフォントの種類や大きさを指定します フォント名、文字の大きさ(数値)など
fg or foreground フォントの色、または bitmap の色を指定します
height ラベルの高さを行数で指定します 数値
image ラベルに貼る画像ファイルを指定します 画像ファイルへのパス
justify テキストが複数行にわたる場合、左寄せ、右寄せ、中央寄せを指定します
padx 縁とテキストとの間の横の余白 数値(ピクセル単位)
pady 縁とテキストとの間の縦の余白 数値(ピクセル単位)
relief ボーダー部分の浮き彫りを指定します flat,raised,sunken,groove,ridge
takefocus ラベルにフォーカスがあるかないか 0(ない),1(ある)
text 表示する文字列を指定します 任意の文字列
textvariable StringVar を指定。変化する文字列を表示するとき使用します。 変数名
underline (0 から数え始めて) n 番目の文字にアンダーラインをつける 数値
width Label の幅 数値(文字数単位)
wraplength 改行幅 数値(ピクセル単位)

試しにいくつかのオプションを使って先ほどのコードを変更してみましょう。

import tkinter as tk

 # tk.Frameを継承したApplicationクラスを作成
class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)

        # ウィンドウの設定
        self.master.title("ウィンドウのタイトル")

        # 実行内容
        self.pack()
        self.create_widget()

    # create_widgetメソッドを定義
    def create_widget(self):

        # label1ウィジェットを作成
        msg = "うへっへへへうへへへへへ\nでへへェェうへへェェうヒィッ\nうひうひうひうはァッ\nでへっでへっどぅひひひひひ\nふっふふはっひひお\nへおへおへへェェッ"

        self.label1 = tk.Label(self,text=msg, fg="white", font=("MSゴシック", "20", "bold"), bg="black")
        self.label1.pack(side="right")

        # label2ウィジェットを作成
        self.icon = tk.PhotoImage(file="img/denchan.png")

        self.label2 = tk.Label(self,image=self.icon, bg="white")
        self.label2.pack(side="left")

if __name__ == "__main__":
    root = tk.Tk()
    app = Application(master=root)
    app.mainloop()

オプション引数を使いこなすことで文字や画像を自由自在に表示できます。

このエントリーをはてなブックマークに追加
カテゴリー: Tkinter 投稿日:

最終更新日: 2019年12月6日

コメントを残す

頂いたコメントは一読した後表示させて頂いております。
反映まで数日かかる場合もございますがご了承下さい。