Tkinter Label

ttk.Label ウィジェットとは?

tkinter の ttk.Label

ttk.Label ウィジェットは文字や画像、あるいは両方同時に表示するために使用します。

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

Tkinter Label ウィジェットのオプション

ttk.Label ウィジェットの標準オプション

  • class
  • compound
  • cursor
  • image
  • padding
  • state
  • style
  • takefocus
  • text
  • textvariable
  • underline
  • width

Label ウィジェットには上記の標準のオプションの他、次のオプションがあります。

ttk.Label ウィジェットの anchor オプション

ttk.Label ウィジェットの anchor オプションは、内部のマージンに対して相対的にどの位置に情報を表示するか指定します。

有効な値は n, ne, e, se, sw, w, nw, center です。

ttk.Label ウィジェットの background オプション

ttk.Label ウィジェットの background オプションは、ウィジェットの背景色を指定します。

ttk.Label ウィジェットの font オプション

ttk.Label ウィジェットの font オプションは、テキストの表示に使用するフォントを指定します。

ttk.Label ウィジェットの foreground オプション

ttk.Label ウィジェットの foreground オプションは、文字の色を指定します。

ttk.Label ウィジェットの justify オプション

ttk.Label ウィジェットの justify オプションは、複数行の文字がある場合にどのようにレイアウトするか指定します。

有効な値は left, center, right です。

ttk.Label ウィジェットの relief オプション

ttk.Label ウィジェットの relief オプションは枠線のスタイルを指定します。

有効な値は flat, groove, raised, ridge, solid, sunken です。

relief の表示例は「Tkinter ttk.Frame のオプション」をみてください。

ttk.Label ウィジェットの wraplength オプション

ttk.Label ウィジェットの wraplength オプションは、行の最大長をピクセル値で指定します。この長さを過ぎると折り返します。

この値が 0 または負の値の場合は自動的な折り返しは行われません。

ttk.Label ウィジェットのスタイル

ttk.Label のスタイルクラス名は TLabel です。

TLabel では次のオプションが指定できます。

  • background : 背景色の設定
  • compound : 画像と文字の表示位置の設定
  • foreground : 文字色の設定
  • font : 文字のフォントの設定

ttk.Label のサンプルコード

ttk.Label を二つ Frame 内に配置する例

ラベルを二つ作成して、それを Frame 内の左右に配置します。

tkinter の ttk.Label

from tkinter import *
from tkinter import ttk

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

style = ttk.Style()
style.theme_use('classic')

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

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

root.mainloop()

ttk.Label に画像を設定する例

image オプションに PhotoImage を設定することで ttk.Label 内に画像を表示します。

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()

# Image
pencil_image = PhotoImage(file='pencil.png')

# Label 1
label1 = ttk.Label(
    frame1,
    image=pencil_image)
label1.grid(row=0, column=0)

# Label 2
label2 = ttk.Label(
    frame1,
    text='Will schools be open this fall?',
    padding=(20)) # (left, top, right, bottom)
label2.grid(row=0, column=1)

root.mainloop()

また、ひとつの Label に text と image の両方を同時にセットすることもできます。 文字と画像を同時にひとつのラベル内に表示するときには、compound オプションで 文字のどの側に画像を表示するか指定することができます。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Python 入門