Python 入門

ホーム > Tkinter による GUI プログラミング > Label - Tkinter のウィジェット

Label - Tkinter のウィジェット

ここでは Tk 8.5 から利用可能となった ttk モジュールの、ttk.Label ウィジェットの利用方法を説明します。

全ての使い方を網羅しているわけではありませんが、なるべく典型的な利用パターンについては触れたいと思います。

Label ウィジェットは文字、画像及びそれら両方を表示するために使用します。

基本的には編集不可の文字表示ということになりますが、プログラムから動的に変更することもできます。

from tkinter import *
from tkinter import ttk

root = Tk()
frame1 = ttk.Frame(root)
frame1.grid()

label1 = ttk.Label(
    frame1,
    text='Hello',
    background='#0000aa',
    foreground='#ffffff',
    padding=(5,10))
label1.grid(row=1,column=1)

label2 = ttk.Label(
    frame1,
    text='World',
    background='#ffffff',
    width=20,
    anchor=E,
    padding=(5,10))
label2.grid(row=1,column=2)

root.mainloop()

tkinter の ttk.Label

ラベルとして画像・アイコンを表示

画像の表示

from tkinter import *
from tkinter import ttk

root = Tk()
root.title('Label Example')

# Frame as Widget Container
frame1 = ttk.Frame(root)
frame1.grid()

# Label 1
icon = PhotoImage(file='pen.png')

label1 = ttk.Label(
    frame1,
    image=icon)
label1.grid(row=1,column=1)

# String
s = StringVar()
s.set('Going Back To School')

# Label 2
label2 = ttk.Label(
    frame1,
    textvariable=s,
    width=30,
    anchor=W,
    padding=(5,10))
label2.grid(row=1,column=2)

root.mainloop()

tkinter の ttk.Label

上記の例では画像と文字をそれぞれ別の Label ウィジェットで表示しました。 しかし、画像と文字をひとつの Label ウィジェットに表示することもできます

この場合、文字と画像の位置関係を compound オプションで指定できます。

from tkinter import *
from tkinter import ttk

root = Tk()
root.title('Label Example')

# Frame as Widget Container
frame1 = ttk.Frame(root)
frame1.grid()

# Label 1
icon = PhotoImage(file='earth.png')

label1 = ttk.Label(
    frame1,
    image=icon,
    text='Earth',
    compound='top')
label1.grid(row=1,column=1)

root.mainloop()

この例では compound に top を指定しているので、画像が文字の上に表示されています。

tkinter の ttk.Label

compound オプションには、画像の位置関係を表す bottomleftrighttop オプションがあります。

その他、image を指定すると画像のみを表示し、 text を指定すると文字のみを表示します。 none は画像と文字がある場合は画像のみを表示します。

ホーム > Tkinter による GUI プログラミング > Label - Tkinter のウィジェット