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

Tkinter에서 버튼 클릭 이벤트를 처리하는 방법 총정리

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()

실행 결과

위 코드를 실행하면 버튼 위젯이 포함된 창이 화면에 나타납니다.

Tkinter에서 버튼 클릭 이벤트를 처리하는 방법 총정리

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

Tkinter에서 버튼 클릭 이벤트를 처리하는 방법 총정리

핵심 정리

  • command 매개변수: 버튼 클릭 시 실행될 콜백 함수를 지정합니다. 이때 함수 이름만 전달하고 괄호는 붙이지 않습니다.
  • lambda 활용: 인자를 전달해야 하는 경우 command=lambda: 함수명(인자) 형태로 작성하면 편리합니다.
  • messagebox 모듈: 간단한 알림 창을 띄울 때 사용하며, from tkinter import messagebox로 임포트합니다.

이처럼 Tkinter의 버튼 위젯과 콜백 함수만 활용하면 클릭 이벤트를 손쉽게 처리할 수 있습니다. 실제 프로젝트에서는 데이터 저장, 화면 전환, 계산 수행 등 다양한 기능을 버튼 이벤트와 연결하여 확장할 수 있습니다.