Tkinter 레이블 텍스트를 변경하는 방법

Jinku Hu 2023년1월30일
  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()와 같은 문자열로 문자열 변수를 시작할 수 없습니다.

self.text.set( "Test")와 같이 StringVar 값을 설정하려면 set 메소드를 호출해야합니다.

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

textvariableself.text 로 설정하여 StringVar 변수 self.text 를 레이블 위젯 self.label 에 연관시킵니다. Tk 툴킷은 self.text 의 변경 사항을 추적하기 시작하고 self.text 가 수정되면 self.label 텍스트를 업데이트합니다.

레이블 텍스트를 변경하기위한 레이블 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"로 시작될 수 있고 레이블 객체의 텍스트 키에 새로운 값을 할당하여 업데이트 할 수도 있습니다.

아래와 같이 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()
작가: 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 Facebook

관련 문장 - Tkinter Label