Tkinter로 만든 GUI 애플리케이션에서 버튼 클릭 한 번으로 창을 닫고 프로그램을 종료하는 방법을 알아보겠습니다. 몇 가지 간단한 단계만 거치면 누구나 쉽게 구현할 수 있습니다.
구현 단계
tkinter 라이브러리를 임포트하고 프레임 인스턴스를 생성합니다.
geometry() 메서드를 사용해 윈도우의 크기를 설정합니다.
윈도우를 닫는 close() 함수를 정의합니다. 이 함수 내부에서 win.destroy() 메서드를 호출합니다.
버튼을 생성하고 해당 버튼의 command 옵션에 close() 함수를 연결합니다.
마지막으로 애플리케이션의 mainloop()를 실행합니다.
예제 코드
# 라이브러리 임포트
from tkinter import *
# 윈도우 인스턴스 생성
win = Tk()
# 윈도우 크기 설정
win.geometry("700x350")
# 윈도우 제목 설정
win.title("버튼을 클릭하면 창이 닫힙니다")
# 윈도우를 닫는 함수 정의
def close():
#win.destroy()
win.quit()
# close() 함수를 호출하는 버튼 생성
Button(win, text= "창 닫기", font=("Calibri",14,"bold"), command=close).pack(pady=20)
win.mainloop()실행 결과
위 코드를 실행하면 다음과 같은 화면이 나타납니다.

버튼을 클릭하면 윈도우가 즉시 닫히면서 프로그램이 종료됩니다.
destroy()와 quit()의 차이점
예제 코드에서 볼 수 있듯이 win.destroy() 대신 win.quit()를 사용해서도 애플리케이션을 종료할 수 있습니다. 하지만 두 메서드에는 미묘하지만 중요한 차이가 있습니다.
win.quit()는 애플리케이션을 갑작스럽게 종료합니다. 이 경우 메인루프(mainloop)가 백그라운드에서 여전히 실행된 상태로 남아있게 됩니다.
반면 win.destroy()는 메인루프를 완전히 종료하고 윈도우 내부의 모든 위젯(widget)까지 함께 소멸시킵니다. 따라서 리소스를 깔끔하게 정리하며 프로그램을 종료하려면 win.destroy()를 사용하는 것이 더 안전하고 권장되는 방법입니다.