tkinterでラベルの作成のサンプルを以下に示します。
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master = None):
super().__init__(master)
self.master.title("ラベルの作成") # ウィンドウタイトル
self.master.geometry("300x100") # ウィンドウサイズ(幅x高さ)
#--------------------------------------------------------
# ラベルの作成
self.label = tk.Label(self.master, text = "ラベルの文字")
# ラベルの配置
self.label.pack()
#--------------------------------------------------------
if __name__ == "__main__":
root = tk.Tk()
app = Application(master = root)
app.mainloop()
(実行画面)
構文
ラベルオブジェクト = tk.Label(親ウィジェット, オプション1 = 設定値, オプション2 = 設定値,・・・)
オプション
オプション名 | 説明 |
activebackground | クリックされたときの背景色を指定します。 |
activeforeground | クリックされたときの文字色を指定します。 |
anchor | 文字の配置位置を指定します。 【設定値】tk.N, tk.S, tk.W, tk.E, tk.NW, tk.NE, tk.SW, tk.SE, tk.CENTER |
background | 背景色を指定します。 |
bd | 枠線の太さを指定します。 ただし、初期状態では枠線が表示されていないため、reliefで枠線のスタイルを指定する必要があります。(borderwidthと同じ) |
bg | 通常時の背景色を指定します。 |
bitmap | モノクロのBitmapを指定します。 (参考)https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/bitmaps.html |
borderwidth | bdと同じ |
compound | 文字と画像の両方を表示する際に、文字に対して画像の表示位置を指定します。 【設定値】tk.LEFT, tk.RIGHT, tk.BOTTOM, tk.TOP, tk.CENTER |
cursor | ウィジェット上にマウスポインタがある際のカーソルの種類を指定します。 (参考)https://tkdocs.com/shipman/cursors.html |
disabledforeground | stateオプションで無効(DISABLED)に設定している際の文字色を設定します。 |
fg | 表示する文字色を指定します。(foregroundと同じ) |
font | 表示する文字のフォントを指定します。 |
foreground | fgと同じ |
height | ラベルの高さを文字数で指定します。 画像を配置した時は、画素数の指定になります。 |
highlightbackground | |
highlightcolor | |
highlightthickness | |
image | 表示する画像を指定します。 |
justify | 複数行の文字のときの、文字寄せ方向を指定します。 【設定値】左寄せ(tk.LEFT), 中央寄せ(tk.CENTER), 右寄せ(tk.RIGHT) |
padx | 文字の両側の隙間を指定します。 |
pady | 文字の上下の隙間を指定します。 |
relief | ラベルの枠線のスタイルを指定します。 【設定値】tk.RAISED, tk.GROOVE, tk.SUNKEN, tk.RIDGE, tk.FLAT |
state | |
takefocus | |
text | 表示する文字を指定します。 |
textvariable | StringVarクラスオブジェクトを指定し、ラベルの文字列を指定します。 |
underline | 指定した順番(先頭から0始まり)の文字にアンダーラインを付加します。 |
width | ラベルの幅を文字数で指定します。 |
wraplength | 文字の折り返し幅を指定します。 |
ラベルはプログラムの各種情報を表示するのに、プログラムの実行中に文字列を変更する場合が多いかと思います。
ラベルの文字を変更する方法は主に下記の2通りあります。
- textvariableオプションのStringVarを指定し変更する方法
- ラベルのtextオプションを直接変更する方法
textvariableオプションのStringVarを指定し変更する方法
以下のサンプルでは、LabelのtextvariableオプションにStringVarを指定し、ボタンのクリック時にラベルの文字列を変更しています。
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master = None):
super().__init__(master)
self.master.title("ラベルの作成") # ウィンドウタイトル
self.master.geometry("300x100") # ウィンドウサイズ(幅x高さ)
#--------------------------------------------------------
# ラベルの作成
self.label_text = tk.StringVar(value = "ラベルの文字") # valueは初期値
self.label = tk.Label(self.master, textvariable = self.label_text)
# ラベルの配置
self.label.pack()
#--------------------------------------------------------
# ボタンの作成
self.button = tk.Button(self.master, text = "ボタン", command = self.button_click)
# ボタンの配置
self.button.pack()
#--------------------------------------------------------
def button_click(self):
'''ボタンがクリックされたとき'''
# ラベル文字の変更方法1
# StringVarの値を設定する
self.label_text.set("ボタンがクリックされた")
if __name__ == "__main__":
root = tk.Tk()
app = Application(master = root)
app.mainloop()
(プログラム起動時)
(ボタンクリック後)
ラベルのtextオプションを直接変更する方法
以下のサンプルでは、ボタンのクリック時にラベルのtextオプションを直接変更しています。
ただし、textオプションとtextvariableオプションを両方指定することは出来ないので注意してください。
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master = None):
super().__init__(master)
self.master.title("ラベルの作成") # ウィンドウタイトル
self.master.geometry("300x100") # ウィンドウサイズ(幅x高さ)
#--------------------------------------------------------
# ラベルの作成
self.label = tk.Label(self.master, text = "ラベルの文字")
# ラベルの配置
self.label.pack()
#--------------------------------------------------------
# ボタンの作成
self.button = tk.Button(self.master, text = "ボタン", command = self.button_click)
# ラベルの配置
self.button.pack()
#--------------------------------------------------------
def button_click(self):
'''ボタンがクリックされたとき'''
# ラベル文字の変更方法2
# ラベルのプロパティを直接設定する。ただし、textvariableプロパティは設定しないこと
self.label["text"] = "ボタンがクリックされた"
if __name__ == "__main__":
root = tk.Tk()
app = Application(master = root)
app.mainloop()
(プログラム起動時)
(ボタンクリック後)