Tkinter에서 Toplevel 창은 애플리케이션 내에 자식(하위) 창을 생성할 때 사용하는 옵션입니다. 기본 메인 tkinter 창과 유사하게 동작하며, 창의 크기 설정, 속성과 특성 커스터마이징은 물론 다양한 위젯을 추가해 원하는 구성 요소를 자유롭게 만들 수 있습니다.
애플리케이션에서 Toplevel 창을 생성했다면 destroy() 메서드를 호출하여 해당 창만 간단히 닫을 수 있습니다. 여기서 중요한 점은 destroy()가 호출된 그 창만 종료될 뿐, 루트(root) 창이나 애플리케이션 전체에는 영향을 주지 않는다는 것입니다.
예제
다음 예제는 버튼을 클릭하면 Toplevel 창이 열리는 애플리케이션입니다. 열린 Toplevel(자식) 창에는 안내 문구를 표시하는 라벨과 창을 닫는 버튼이 포함되어 있으며, 버튼을 클릭할 때마다 해당 Toplevel 창만 닫히게 됩니다.
# 필요한 라이브러리 임포트
from tkinter import *
# tkinter 윈도우 인스턴스 생성
win = Tk()
win.geometry("700x400")
win.title("Root Window")
# Toplevel 창을 생성하는 함수
def create_top():
top = Toplevel(win)
top.geometry("400x250")
top.title("Toplevel Window")
Label(top, text="Hello, Welcome to Tutorialspoint", font='Arial 15 bold').pack()
# Toplevel 창을 닫는 버튼
button = Button(top, text="Close", command=top.destroy)
button.pack()
# Toplevel 창을 여는 버튼 생성
button = Button(win, text="Click Here", font='Helvetica 15', command=create_top)
button.pack(pady=30)
win.mainloop()실행 결과
위 코드를 실행하면 버튼이 하나 있는 창이 표시되고, 이 버튼을 클릭하면 Toplevel 창이 열립니다.

Toplevel 창이 열린 상태에서 "Close" 버튼을 클릭하면 루트 창은 그대로 유지된 채 Toplevel 창만 닫히는 것을 확인할 수 있습니다.
