Tkinter는 Toplevel 클래스를 기본적으로 지원하며, 이 클래스를 사용하면 최상위(top-level) 창을 손쉽게 생성할 수 있습니다. 최상위 창은 흔히 자식 창(child window) 또는 팝업 창이라고도 불리며, Toplevel(parent) 객체를 생성하는 것만으로 간단하게 만들 수 있습니다.
최상위 창은 부모 객체의 모든 속성을 그대로 상속받습니다. 따라서 일반 메인 창과 마찬가지로 레이블(Label), 버튼(Button) 같은 위젯은 물론 프레임(Frame), 캔버스(Canvas) 등 다양한 객체를 자유롭게 배치할 수 있습니다.
Tkinter 팝업 창 예제 코드
아래 예제에서는 버튼을 클릭하면 새로운 팝업 창이 열리도록 구현해 보겠습니다.
#Import the required libraries
from tkinter import *
#Create an instance of Tkinter Frame
win = Tk()
#Set the geometry
win.geometry("700x250")
def open_win():
#Create a Button to Open the Toplevel Window
top= Toplevel(win)
top.geometry("700x250")
top.title("Child Window")
#Create a label in Toplevel window
Label(top, text= "Hello World!")
Label(win, text= "Click the button to Open Popup Window", font= ('Helvetica 18')).place(relx=.5, rely=.5, anchor= CENTER)
Button(win, text= "Click Me", background= "white", foreground= "blue", font= ('Helvetica 13 bold'), command= open_win).pack(pady= 50)
win.mainloop()실행 결과
위 코드를 실행하면 안내 문구가 담긴 레이블과 버튼이 배치된 메인 창이 화면에 나타납니다.

이제 [Click Me] 버튼을 클릭하면 다음과 같이 새로운 팝업 창이 열립니다.

코드 핵심 포인트 정리
Toplevel(win): 메인 창(win)을 부모로 하는 새로운 자식 창을 생성합니다.top.geometry("700x250"): 팝업 창의 크기를 지정합니다.top.title("Child Window"): 팝업 창 제목 표시줄의 텍스트를 설정합니다.command=open_win: 버튼 클릭 시open_win함수가 호출되어 팝업 창이 열립니다.
이처럼 Toplevel 클래스를 활용하면 별도의 외부 라이브러리 없이도 Tkinter만으로 간단하고 직관적인 팝업 창을 구현할 수 있습니다. 알림 창, 설정 창, 상세 정보 보기 창 등 다양한 UI 요소에 응용해 보세요.