Tkinter チュートリアル - ラベル Label

  1. Python Tkinter ラベルウィジェット
  2. Python ラベルフォントの変更
  3. Python Tkinter ラベルの色を変更
  4. Python Tkinter ラベルで画像を表示

Label ラベルウィジェットは、静的なテキスト文字列または画像を表示します。一般に、そのコンテンツは動的ではないはずです。もちろん、必要に応じてその内容を変更できます。

Python Tkinter ラベルウィジェット

Tkinter Label.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
app = tk.Tk()
labelExample = tk.Label(app, text="This is a Label")
labelExample.pack()
app.mainloop()

プログラムが実行されると、メインウィンドウ内にテキストラベルを持つウィンドウを生成します。

Tkinter Basic ラベル

labelExample = tk.Label(app, text = "This is a label")

labelExample は、メインウィンドウ app 内の This is a label を表示する Label インスタンスです。

labelExample.pack()

pack() メソッドは、メインウィジェット内の特定のウィジェットのレイアウトを管理します。以下のオプションがあります

pack() 方法 説明
after=widget ウィジェットをパックした後にパックする
anchor=NSEW (or subset) に従ってウィジェットを配置する
before=widget ウィジェットをパックする前にパックします
expand=bool 親のサイズが大きくなったらウィジェットを展開します
fill=none or x or y or both ウィジェットが大きくなったらウィジェットを埋める
in=master マスターを使用してこのウィジェットを含める
in_=master in オプションの説明を参照してください
ipadx=amount x 方向に内部パディングを追加します
ipady=amount y 方向に内部パディングを追加します
padx=amount x 方向にパディングを追加します
pady=amount y 方向にパディングを追加します
side=top or bottom or left or right このウィジェットを追加する場所。

オプションを変更して、異なるラベルウィジェットレイアウトを取得できます。

ラベルのサイズは、ラベルのウィジェットのオプションに属する幅と高さで指定されます。

備考

テキストが含まれる場合、幅と高さはテキスト単位の単位を持ち、画像を表示する場合のサイズはピクセルです。

dict(label) を通じてラベルオブジェクトのすべての属性を一覧表示することができます。

Tkinter Label_Get Properties.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
from pprint import pprint
    
app = tk.Tk()
labelExample = tk.Label(app, text="This is a Label", height=15, width=100)
pprint(dict(labelExample))

プロパティは以下のとおりです

{'activebackground': 'SystemButtonFace',
 'activeforeground': 'SystemButtonText',
 'anchor': 'center',
 'background': 'SystemButtonFace',
 'bd': <pixel object at 00000000048D1000>,
 'bg': 'SystemButtonFace',
 'bitmap': '',
 'borderwidth': <pixel object at 00000000048D1000>,
 'compound': 'none',
 'cursor': '',
 'disabledforeground': 'SystemDisabledText',
 'fg': 'SystemButtonText',
 'font': 'TkDefaultFont',
 'foreground': 'SystemButtonText',
 'height': 15,
 'highlightbackground': 'SystemButtonFace',
 'highlightcolor': 'SystemWindowFrame',
 'highlightthickness': <pixel object at 00000000048FF100>,
 'image': '',
 'justify': 'center',
 'padx': <pixel object at 00000000048FED40>,
 'pady': <pixel object at 00000000048FF0D0>,
 'relief': 'flat',
 'state': 'normal',
 'takefocus': '0',
 'text': 'This is a Label',
 'textvariable': '',
 'underline': -1,
 'width': 100,
 'wraplength': <pixel object at 00000000048FED70>}

ラベルのすべての属性を知ったら、ラベルを変更することで異なるラベルの外観を得ることができます。

Python ラベルフォントの変更

下の例を使って、ラベルの中の文字のフォントを変えてもいいです。

Tkinter Label_Set Text Font.py

from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk

import tkFont    
app = tk.Tk()
labelExample1 = tk.Label(app, text="Customized Label 1", font=("Times", 20))
labelExample2 = tk.Label(app, text="Customized Label 2", 
                         font=("Times", 20, "italic"))

labelFont3 = tkFont.Font(family="Helvetica", size=20, weight=tkFont.BOLD,
                         underline=1, overstrike=1)
labelExample3 = tk.Label(app, text="Customized Label 3", 
                         font=labelFont3)
labelExample1.pack()
labelExample2.pack()
labelExample3.pack()
app.mainloop()

変更されたテキストフォントを含む Tkinter ラベル

タプルで Python Tkinter ラベルフォントを設定する

labelExample1 = tk.Label(app, text="Customized Label 1", font=("Times", 20))
labelExample2 = tk.Label(app, text="Customized Label 2", 
                         font=("Times", 20, "italic"))

フォント名タイプを最初の要素とし、サイズ、フォーマットは太字、斜体、下線または取り消し線などです。

tkFont フォントオブジェクトで Python Tkinter ラベルフォントを設定する

labelFont3 = tkFont.Font(family="Helvetica", size=20, weight=tkFont.BOLD,
                         underline=1, overstrike=1)
labelExample3 = tk.Label(app, text="Customized Label 3", 
                         font=labelFont3)

tkFont モジュールのフォントオブジェクトを使用して、ラベルテキストのフォントプロパティを指定することもできます。

labelExample3 のフォントタイプは、Helvetica のフォントファミリで、20 号、太字、下線と太字 1 の削除ラインがあります。

Info

Tkinter で使えるフォントシリーズを知りたいのかもしれませんが、下のこのプログラムはそれらを全部並べます。

Tkinter Label_Get Fonts List.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk

import tkFont
from pprint import pprint

app = tk.Tk()
pprint(tkFont.families())  

Python Tkinter ラベルの色を変更

fgbg プロパティを使用して、ラベルの前景色と背景色を変更できます。

labelExample1 = tk.Label(app, text="Customized Color",bg="gray", fg="red")

Tkinter 変更ウィジェットの前景色と背景色

Python Tkinter ラベルで画像を表示

labelimage プロパティは、ラベルに画像を表示するために使用できます。

Tkinter Lael_Display Image.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    

app = tk.Tk()
logo = tk.PhotoImage(file='python.gif')
labelExample = tk.Label(app, image=logo)
labelExample.pack()
app.mainloop()

ラベル内の Tkinter イメージ

警告

tk.PhotoImage は GIF、PPM/PGM のタイプのカラー画像のみを表示できました。

他のタイプの画像を使用すると、_tkinter.TclError を生成します:_tkinter.TclError: couldn't recognize data in image file

comments powered by Disqus