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

파이썬 Tkinter에서 버튼 클릭으로 창 닫기 – destroy() 메서드 완벽 가이드

Tkinter는 위젯(Widget)과 라벨(Label)을 포함하는 창이나 프레임을 생성하는 파이썬의 대표적인 GUI 라이브러리입니다. 실제 애플리케이션을 개발하다 보면 버튼을 눌러 창을 닫아야 하는 경우가 자주 발생합니다. 버튼(Button)은 특정 동작을 수행할 수 있도록 해주는 기본적인 UI 위젯입니다.

구현 방법

이번 예제에서는 클릭 시 Tkinter 창을 닫는 버튼을 만들어 보겠습니다. 창을 닫고 TCL 인터프리터를 종료하기 위해서는 destroy() 메서드를 사용합니다. 이 메서드가 호출되면 해당 윈도우와 그 안의 모든 위젯이 함께 제거됩니다.

# 필요한 라이브러리 임포트
from tkinter import *

# Tkinter 프레임 인스턴스 생성
win = Tk()

# 프레임 크기 설정
win.geometry("600x250")

# 라벨 생성
Label(win, text="Close 버튼을 누르면 창이 닫힙니다",
      font=('Helvetica bold', 11)).pack(pady=20)

# 창을 닫는 함수 정의
def close_win():
    win.destroy()

# 창을 닫기 위한 버튼 생성
button = Button(win, text="Close", command=close_win)
button.pack(pady=20)

win.mainloop()

실행 결과

위 코드를 실행하면 안내 문구와 함께 'Close' 버튼이 포함된 창이 화면에 나타납니다.

파이썬 Tkinter에서 버튼 클릭으로 창 닫기 – destroy() 메서드 완벽 가이드

이제 'Close' 버튼을 클릭하면 close_win() 함수가 호출되어 destroy() 메서드를 통해 창이 즉시 종료됩니다.

핵심 포인트 정리

- command 매개변수: Button 위젯에 command 옵션을 지정하면 버튼 클릭 시 해당 함수가 자동으로 호출됩니다.
- destroy() 메서드: 단순히 창을 숨기는 것이 아니라 TCL 인터프리터까지 완전히 종료시키므로, 메모리가 해제되고 프로그램이 깔끔하게 마무리됩니다.
- quit()과의 차이: quit()은 mainloop만 종료하지만 destroy()는 창 자체를 소멸시키므로, 창을 닫는 목적이라면 destroy() 사용을 권장합니다.