Tkinter 애플리케이션을 개발하다 보면 사용자의 입력에 반응하는 이벤트 처리가 까다롭게 느껴질 때가 있습니다. 애플리케이션이 실행되는 동안 발생하는 다양한 동작과 이벤트를 적절히 관리해야 하기 때문입니다. 이때 가장 유용하게 활용할 수 있는 위젯이 바로 Button(버튼)입니다.
버튼 위젯은 command 매개변수에 콜백 함수를 전달하는 방식으로 특정 작업이나 이벤트를 수행합니다. 여기에 선택적으로 lambda(람다) 함수나 익명 함수를 함께 사용하면, 프로그램 실행 중 발생할 수 있는 오류를 우아하게 처리할 수 있습니다. 람다 함수는 일반 함수와 비슷하지만 별도의 함수 본문 없이 한 줄로 간결하게 정의할 수 있다는 점이 특징입니다.
예제 코드
아래 예제에서는 버튼을 생성하고, 버튼을 클릭했을 때 팝업 메시지 창을 띄우는 함수를 연결해 보겠습니다.
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import messagebox
from tkinter import ttk
# Tkinter 프레임 인스턴스 생성
win = Tk()
# 윈도우 크기 설정
win.geometry("700x350")
# 팝업 메시지를 표시하는 함수 정의
def show_msg():
messagebox.showinfo("Message", "Hey There! I hope you are doing well.")
# 선택적으로 Label 위젯 추가
Label(win, text="Welcome Folks!", font=('Aerial 17 bold italic')).pack(pady=30)
# 메시지를 표시하는 버튼 생성
ttk.Button(win, text="Click Here", command=show_msg).pack(pady=20)
win.mainloop()실행 결과
위 코드를 실행하면 버튼 위젯이 포함된 창이 화면에 나타납니다.

이제 버튼을 클릭해 보세요. 버튼 클릭 이벤트가 발생하면서 command에 등록된 show_msg 함수가 호출되고, 화면에 팝업 메시지 창이 표시됩니다.

핵심 정리
- command 매개변수: 버튼 클릭 시 실행될 콜백 함수를 지정합니다. 이때 함수 이름만 전달하고 괄호는 붙이지 않습니다.
- lambda 활용: 인자를 전달해야 하는 경우
command=lambda: 함수명(인자)형태로 작성하면 편리합니다. - messagebox 모듈: 간단한 알림 창을 띄울 때 사용하며,
from tkinter import messagebox로 임포트합니다.
이처럼 Tkinter의 버튼 위젯과 콜백 함수만 활용하면 클릭 이벤트를 손쉽게 처리할 수 있습니다. 실제 프로젝트에서는 데이터 저장, 화면 전환, 계산 수행 등 다양한 기능을 버튼 이벤트와 연결하여 확장할 수 있습니다.