파이썬(Python)

[ Tkinter ] Tkinter StringVar()를 사용한 레이블(Label) 텍스트 업데이트

카루루1007 2024. 1. 11. 11:42
728x90
반응형
SMALL

 [ 들어가며 ]

 

Label의 텍스트사용자의 입력에 따라

변경이 가능합니다.

 

경우에 따라서는 레이블(Label)의 텍스트를 

계속 변경하는 프로그램을 작성해야 할 경우가 있습니다.

 

이번블로그에서는 

레이블(Label)의 텍스트를 간단하게 수정 또는 변경하는 방법

알아보겠습니다.

 

Label에 텍스트가 입력이 되어 있고

버튼을 누르면 다른 텍스트로 바뀌는

간단한 코드를 작성해볼 것입니다.

 

레이블의 기본적인 생성 등에 대한 내용은 아래 블로그에서 확인이 가능합니다.

※ Tkinter 기본적인 Label 만들기, 텍스트와 이미지 표시하기

※ Tkinter 레이블(Label)의 크기, 배경색 및 글자색 설정하기

 

[ 버튼 클릭으로 레이블(Label) 텍스트 바꾸기 ]

 

먼저 전체 소스코드입니다.

import tkinter as tk

root = tk.Tk()
root.geometry("300x200")
root.title("karuru1007.tistory.com")

str = tk.StringVar(root)
str.set("karuru1007 블로그에 오신 것을 환영합니다.")

label1 = tk.Label(root, textvariable=str)
label1.pack()

button1 = tk.Button(root, text="업데이트", command=lambda:str.set("클릭해주세요!"))
button1.pack()

root.mainloop()
반응형

이 코드는 다음과 같이 동작합니다.

1. StringVar() 함수를 사용하여 str이라는 StringVar 변수를 선언합니다.

2. str 변수에 "karuru1007 블로그에 오신 것을 환영합니다."라는 텍스트를 설정합니다.

3. Label() 함수를 사용하여 label1이라는 레이블을 생성합니다.
    label1 레이블의 textvariable 속성을 str 변수로 설정합니다.

4. Button() 함수를 사용하여 button1이라는 버튼을 생성합니다.
    button1 버튼의 command 속성을 lambda:str.set("클릭해주세요!")으로 설정합니다.
    이 설정은 button1 버튼을 클릭하면 str 변수의 값을 "클릭해주세요!"로 설정합니다.

 

이 코드를 실행하면 먼저 아래 그림과 같은 창이 나타납니다.

 

그 다음 [ 업데이트 버튼 ]을 누르면

아래 그림과 같이 레이블(Label)의 텍스트가 변경됩니다.

 

[ 코드 설명 ]

728x90

StringVar() 함수는 문자열 값을 지정하고 관리하는데 사용되는

변수 유형인 StringVar 변수를 생성합니다.

str = tk.StringVar(root)

 

그 다음 str 변수의 값을 set() 메서드를 사용해 설정을 합니다.

str.set("karuru1007 블로그에 오신 것을 환영합니다.")

 

Label을 생성하고 Label의 텍스트를 str 변수의 내용으로 설정합니다.

 label1 = tk.Label(root, textvariable=str)

 

그 다음 버튼을 생성한 후

버튼을 클릭할 경우 str 변수의 값을 바꾸어 줍니다.

button1 = tk.Button(root, text="업데이트", command=lambda:str.set("클릭해주세요!"))

※ 람다(Lambda) 함수의 설명은 여기를 참고하세요

 

간단하게 람다(lambda) 함수를 설명하면

별도의 함수 선언 없이

즉시 정의해서 일시적으로 사용하거나,

다른 함수에 인자로 전달할 때 사용하는 함수입니다.

 

이 외에도 사용자의 입력을 받아

레이블(Label)의 텍스트를 처리할 수 있습니다.

이 방법은 추후 한번 다시 포스팅 하도록 하겠습니다.

728x90
반응형
LIST