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()
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)
textvariable
을 self.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()
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