Tkinter의 버튼(Button) 위젯은 애플리케이션에서 발생하는 이벤트를 처리하고 특정 작업을 수행하는 데 핵심적인 역할을 합니다. 일반적으로는 이러한 이벤트를 처리하기 위해 특정 작업을 담고 있는 메서드(함수)를 정의한 뒤, 버튼의 command 옵션에 연결해서 사용합니다.
그렇다면 버튼을 생성한 이후에 실행될 이벤트 메서드를 바꾸고 싶을 때는 어떻게 해야 할까요? 이럴 때는 configure(options) 메서드를 활용하면 됩니다. 새로운 메서드를 정의하고 버튼에 다시 설정만 해주면, 동일한 버튼으로 완전히 새로운 이벤트를 트리거할 수 있습니다.
예제 코드
# tkinter 라이브러리 임포트
from tkinter import *
# tkinter 프레임 인스턴스 생성
win = Tk()
# 창 크기 설정
win.geometry("750x250")
# 텍스트 라벨을 표시하는 함수 정의
def text_label():
Label(win, text="우후! 이벤트가 발생했습니다!", font=('Helvetica 10 bold')).pack(pady=20)
# 버튼이 새로운 이벤트를 트리거하도록 재설정
button.configure(command=close_win)
# 이벤트를 종료하는 함수 정의
def close_win():
win.destroy()
# 버튼 위젯 생성
button = Button(win, text="클릭", font=('Helvetica 10 bold'), command=text_label)
button.pack(side=TOP)
win.mainloop()실행 결과
위 코드를 실행하면 버튼이 하나 배치된 창이 화면에 나타납니다.

버튼을 처음 클릭하면 미리 정의해 둔 텍스트 라벨이 창에 표시되며, 동시에 configure() 메서드를 통해 버튼의 command가 close_win 함수로 교체됩니다.

이제 같은 버튼을 두 번째로 클릭하면 win.destroy()가 호출되어 TCL 인터프리터가 종료되고 창이 닫히는 것을 확인할 수 있습니다.
이처럼 configure() 메서드를 사용하면 버튼을 새로 만들지 않고도 클릭 시 실행되는 동작을 자유롭게 변경할 수 있어, 상태에 따라 다른 기능을 수행해야 하는 UI를 구현할 때 매우 유용합니다.