Как изменить текст этикетки Tkinter

  1. Используйте Stringvar для изменения текста этикетки Tkinter
  2.  Метка text свойство для изменения текста метки

В этом уроке мы расскажем, как изменить текст этикетки Tkinter, нажав на кнопку.

Используйте Stringvar для изменения текста этикетки Tkinter

StringVar - один из типов конструктора Tkinter для создания строковой переменной Tkinter.

После того, как мы свяжем переменную StringVar с виджетами Tkinter, 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 Ярлык текст

self.text = tk.StringVar()
self.text.set("Test")

Конструктор Tkinter не смог инициировать строковую переменную со строкой типа self.text = tk.StringVar().

Надо вызвать метод set для установки значения StringVar, как self.text.set("Test").

self.label = tk.Label(self.root, textvariable=self.text)

Он связывает переменную StringVar self.text с виджетами меток self.label, устанавливая textvariable в качестве self.text. Инструментарий Tk начинает отслеживать изменения self.text и будет обновлять текст self.label, если self.text будет изменён.

 Метка text свойство для изменения текста метки

Другим решением для изменения текста этикетки Tkinter является изменение свойства 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 объекта метки.

Мы также можем изменить свойство text методом tk.Label.configure(), как показано ниже. Он работает так же, как и вышеприведенные коды.

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

Сопутствующая статья - Tkinter Label

  • Как изменить размер шрифта этикетки Tkinter
  • Как скрыть, восстановить и удалить Tkinter виджеты
  • Как получить текст на этикетке Tkinter
  • Как установить границу виджета метки Tkinter
  • comments powered by Disqus