Tkinter ラベルテキストを変更する方法

胡金庫 2023年1月30日
  1. StringVar を使って Tkinter ラベルテキストの変更する
  2. ラベルのラベルテキストを変更するための text プロパティ
Tkinter ラベルテキストを変更する方法

このチュートリアルでは、ボタンをクリックして 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()

Tkinter set Label text

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)

textvariableself.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()
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - Tkinter Label