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

Jinku Hu 30 Январь 2023 18 Апрель 2020
  1. Используйте Stringvar для изменения текста этикетки Tkinter
  2.  Метка text свойство для изменения текста метки
Как изменить текст этикетки Tkinter

В этом уроке мы расскажем, как изменить текст этикетки 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()
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn

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