Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter에서 버튼 클릭으로 레이블(Label) 텍스트를 동적으로 변경하는 방법

Tkinter의 Label(레이블) 위젯은 애플리케이션에서 텍스트나 이미지를 화면에 표시할 때 가장 널리 사용되는 요소입니다. config(**options) 메서드를 활용하면 레이블의 text 속성뿐만 아니라 글꼴 색상, 배경색(foreground/background) 등 다양한 옵션을 자유롭게 설정할 수 있습니다.

만약 레이블 위젯의 내용을 실행 중에 동적으로 수정하고 싶다면, 버튼(Button)과 이벤트 처리 함수를 함께 사용하면 됩니다. 버튼을 클릭했을 때 지정된 함수가 호출되어 레이블의 텍스트를 갱신하는 방식입니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *

# Tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("700x350")

# 레이블 텍스트를 업데이트하는 함수 정의
def on_click():
    label["text"] = "Python"
    b["state"] = "disabled"

# 레이블 위젯 생성
label = Label(win, text="Click the Button to update this Text",
font=('Calibri 15 bold'))
label.pack(pady=20)

# 레이블을 업데이트할 버튼 생성
b = Button(win, text="Update Label", command=on_click)
b.pack(pady=20)

win.mainloop()

실행 결과

위 코드를 실행하면 윈도우에 레이블 텍스트와 버튼이 함께 표시됩니다.

Tkinter에서 버튼 클릭으로 레이블(Label) 텍스트를 동적으로 변경하는 방법

이제 버튼을 클릭하면 on_click() 함수가 실행되어 레이블의 텍스트가 "Python"으로 즉시 변경됩니다. 동시에 버튼의 state 속성이 "disabled"로 설정되어, 중복 클릭으로 인한 불필요한 이벤트 발생을 방지합니다.

Tkinter에서 버튼 클릭으로 레이블(Label) 텍스트를 동적으로 변경하는 방법

핵심 포인트 정리

이 예제에서 주목할 부분은 두 가지입니다. 첫째, label["text"] = "Python"처럼 딕셔너리 방식으로 위젯 속성에 직접 접근하여 값을 변경할 수 있습니다. 둘째, command=on_click 옵션을 통해 버튼 클릭 이벤트와 함수를 연결하므로, 별도의 이벤트 바인딩 없이도 간단하게 동적 UI를 구현할 수 있습니다. 이 방식은 상태 표시, 카운터, 폼 입력 결과 출력 등 다양한 GUI 애플리케이션에서 응용할 수 있습니다.