Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

파이썬 Tkinter destroy() 메서드 완벽 가이드 - 위젯 제거와 메모리 관리

Tkinter의 destroy() 메서드는 위젯을 화면에서 제거하는 역할을 합니다. 이 메서드는 서로 의존 관계에 있는 다양한 위젯들의 동작을 제어할 때 매우 유용합니다. 또한 사용자의 특정 동작으로 어떤 프로세스가 완료되었을 때, GUI 구성 요소를 제거하여 메모리를 확보하고 화면을 정리해야 하는 경우에도 활용됩니다. 즉, destroy() 메서드 하나로 이러한 모든 작업을 처리할 수 있습니다.

destroy() 메서드의 주요 용도

  • 특정 조건이 충족되었을 때 개별 위젯 제거
  • 창(윈도우) 전체를 닫고 프로그램 종료
  • 사용자 동작 완료 후 불필요한 GUI 요소 정리 및 메모리 해제

예제 코드

아래 예제는 버튼 3개가 있는 화면을 보여줍니다. 첫 번째 버튼을 클릭하면 창 자체가 닫히고, 두 번째 버튼을 클릭하면 첫 번째 버튼이 사라지는 식으로 동작합니다. 이러한 동작은 아래 프로그램에서 보듯이 destroy() 메서드를 사용하여 구현할 수 있습니다.

from tkinter import *
from tkinter.ttk import *

# Tkinter 윈도우 생성
base = Tk()

# 이 버튼은 창 자체를 닫습니다
button_1 = Button(base, text="I close the Window", command=base.destroy)

# 버튼의 외부 여백 설정
button_1.pack(pady=40)

# 이 버튼은 첫 번째 버튼을 제거합니다
button_2 = Button(base, text="I close the first button", command=button_1.destroy)
button_2.pack(pady=40)

# 이 버튼은 두 번째 버튼을 제거합니다
button_3 = Button(base, text="I close the second button", command=button_2.destroy)
button_3.pack(pady=40)

mainloop()

실행 결과

위 코드를 실행하면 버튼 3개가 배치된 창이 나타납니다. 각 버튼을 클릭하면 프로그램에 명시된 대로 서로 다른 동작을 확인할 수 있습니다.

  • 첫 번째 버튼 클릭: base.destroy가 호출되어 Tkinter 창 전체가 닫힙니다.
  • 두 번째 버튼 클릭: button_1.destroy가 호출되어 첫 번째 버튼만 화면에서 사라집니다.
  • 세 번째 버튼 클릭: button_2.destroy가 호출되어 두 번째 버튼이 화면에서 사라집니다.

이처럼 destroy() 메서드를 활용하면 위젯 간의 상호작용을 손쉽게 제어할 수 있으며, 더 이상 필요하지 않은 GUI 요소를 효율적으로 정리할 수 있습니다.