본문 바로가기

[Tkinter] 7강 버튼으로 Label 내용 바꾸기

@도마22026. 1. 24. 18:00
728x90


이 강의는 Tkinter GUI 강의 7강입니다.
6강에서는 버튼 클릭 이벤트를 처리하는 방법을 배웠습니다.
이번 강의에서는 버튼을 눌렀을 때
화면에 보이는 텍스트(Label)가 실제로 바뀌도록 만들어봅니다.

이번 강의의 목표는 명확합니다.
이벤트 → 함수 실행 → 화면 변경의 흐름을 이해하는 것입니다.


화면을 바꾼다는 의미

GUI 프로그램에서 “동작한다”는 것은
콘솔에 출력되는 것이 아니라
화면 자체가 변하는 것을 의미합니다.

예를 들면 다음과 같습니다.

  • 버튼을 누르면 글자가 바뀐다
  • 상태 메시지가 업데이트된다
  • 안내 문구가 변경된다

이번 강의에서는
Label의 텍스트를 변경하는 가장 기본적인 방법을 다룹니다.


Label 텍스트를 바꾸는 방법

Tkinter의 Label 위젯은
생성 이후에도 속성을 변경할 수 있습니다.

가장 간단한 방법은
config() 메서드를 사용하는 것입니다.

label.config(text="새로운 글자")

이 코드를 실행하면
Label에 표시된 텍스트가 즉시 변경됩니다.


버튼 클릭 시 Label 변경 흐름

전체 흐름은 다음과 같습니다.

  1. Label 위젯을 미리 생성한다
  2. 버튼 클릭 시 실행될 함수를 만든다
  3. 함수 안에서 Label의 text를 변경한다

이 구조가
GUI 이벤트 처리의 기본 패턴입니다.


Label과 Button 준비하기

먼저 Label과 Button을
화면에 함께 배치합니다.

import tkinter as tk

window = tk.Tk()
window.title("Label 변경 예제")
window.geometry("400x300")

label = tk.Label(window, text="버튼을 눌러보세요")
label.pack()

이 상태에서는
아직 버튼이 없습니다.


버튼 클릭 시 실행될 함수 만들기

버튼을 클릭하면
Label의 글자를 바꾸는 함수를 만듭니다.

def change_text():
    label.config(text="글자가 변경되었습니다")

이 함수는
Label 객체를 직접 수정합니다.


Button과 함수 연결하기

이제 Button을 만들고
함수를 연결합니다.

button = tk.Button(window, text="클릭", command=change_text)
button.pack()

버튼을 클릭하면
change_text() 함수가 실행됩니다.


전체 코드 정리

지금까지의 내용을
하나의 코드로 정리하면 다음과 같습니다.

import tkinter as tk

window = tk.Tk()
window.title("Label 변경 예제")
window.geometry("400x300")

label = tk.Label(window, text="버튼을 눌러보세요")
label.pack()

def change_text():
    label.config(text="글자가 변경되었습니다")

button = tk.Button(window, text="클릭", command=change_text)
button.pack()

window.mainloop()

버튼을 클릭할 때마다
Label의 텍스트가 바뀌는 것을 확인할 수 있습니다.


왜 이 예제가 중요한가

이 예제는
아주 단순해 보이지만
GUI의 핵심 구조를 모두 포함하고 있습니다.

  • 이벤트 발생
  • 함수 실행
  • 화면 상태 변경

이 패턴을 이해하면
복잡한 GUI 프로그램도
같은 방식으로 확장할 수 있습니다.


이번 강의 핵심 정리

이번 강의에서 꼭 기억해야 할 내용입니다.

  • Label의 텍스트는 실행 중에도 변경할 수 있다
  • config()로 위젯 속성을 수정한다
  • 버튼 클릭 이벤트로 화면을 바꿀 수 있다
  • GUI는 상태 변화가 화면에 바로 반영된다

다음 강의 예고

다음 강의에서는
Entry 위젯을 사용해서 사용자의 입력을 받아봅니다.

이제 GUI가
단순히 보여주고 바꾸는 단계에서
사용자의 값을 직접 다루는 단계로 넘어갑니다.


728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차