Tkinter ラベルテキストを変更する方法
胡金庫
2023年1月30日
このチュートリアルでは、ボタンをクリックして Tkinter ラベルテキストを変更する方法を紹介します。
StringVar
を使って Tkinter ラベルテキストの変更する
StringVar
は Tkinter 文字列変数を作成する Tkinter コンストラクターの一種です。
StringVar
変数を Tkinter ウィジェットに関連付けた後、StringVar
変数が変更されると、Tkinter はこの特定のウィジェットを自動的に更新します。
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.text = tk.StringVar()
self.text.set("Test")
self.label = tk.Label(self.root, textvariable=self.text)
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.text.set("Text updated")
app = Test()
self.text = tk.StringVar()
self.text.set("Test")
Tkinter コンストラクターは、文字列初期化と同様の方法で文字列 StringVar
変数を初期化することができません。
set
メソッドを呼び出して、StringVar
値を設定する必要があります。例えば、self.text.set("Test")
。
self.label = tk.Label(self.root, textvariable=self.text)
textvariable
を self.text
に設定することにより、StrigVar
は変数 self.text
をラベルウィジェット self.label
に関連付ける。Tk ツールは self.text
の変更の追跡を開始し、もし self.text
が変更されたら、self.label
のテキストを更新します。
ラベルのラベルテキストを変更するための text
プロパティ
Tkinter ラベルテキストを変更する別のソリューション text
は、ラベルの text
プロパティを変更することです。
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(self.root, text="Text")
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.label["text"] = "Text updated"
app = Test()
ラベルのテキストは text="Text"
で初期化できます。ラベルオブジェクトに新しい値を割り当てる text
キーでラベルテキストを更新します。
以下に示すように、tk.Label.configure()
のメソッドによって text
プロパティを変更することもできます。上記のコードでも同じように機能します。
import tkinter as tk
class Test:
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(self.root, text="Text")
self.button = tk.Button(
self.root, text="Click to change text below", command=self.changeText
)
self.button.pack()
self.label.pack()
self.root.mainloop()
def changeText(self):
self.label.configure(text="Text Updated")
app = Test()
著者: 胡金庫