Tkinter는 애플리케이션의 기능을 확장할 수 있도록 다양한 내장 함수와 기능을 제공합니다. 그중 팝업 창은 messagebox 모듈을 정의하여 손쉽게 만들 수 있습니다. 팝업 메시지 박스를 사용하려면 먼저 아래 명령어로 messagebox 패키지를 임포트해야 합니다.
import tkinter.messagebox
예제 코드
다음 예제에서는 질문 형태의 메시지 박스 팝업을 생성합니다. 사용자가 특정 옵션을 클릭하면, 선택 결과에 따라 각각 다른 동작이 실행되도록 구성했습니다.
# 필요한 라이브러리 임포트
from tkinter import *
import tkinter.messagebox
# Tkinter 프레임 인스턴스 생성
win = Tk()
# 프레임의 크기 설정
win.geometry("700x350")
def open_win():
out = tkinter.messagebox.askquestion('Prompt', 'Do you want to Continue?')
if out == 'yes':
Label(win, text="Thank You for your Response!", font=('Helvetica 22 bold')).pack(pady=40)
else:
win.destroy()
# 버튼 생성
button = Button(win, text="Click Me", command=open_win, font=('Helvetica 14 bold'), foreground='OrangeRed3', background="white")
button.pack(pady=50)
win.mainloop()실행 결과
위 코드를 실행하면 아래와 같은 기본 윈도우가 화면에 나타납니다.

1단계: 버튼 클릭
윈도우에서 "Click Me" 버튼을 클릭하면 질문이 담긴 메시지 박스가 팝업으로 표시됩니다.

2단계: "Yes" 버튼 선택
메시지 박스에서 "Yes" 버튼을 클릭하면 아래와 같이 응답에 대한 감사 메시지가 윈도우에 출력됩니다. 반대로 "No"를 선택하면 win.destroy()가 호출되어 프로그램이 종료됩니다.

핵심 포인트 정리
이 예제의 핵심은 tkinter.messagebox.askquestion() 함수입니다. 이 함수는 사용자에게 질문을 표시하고, 응답 결과를 문자열('yes' 또는 'no')로 반환합니다. 반환값을 조건문과 함께 활용하면 사용자의 선택에 따라 서로 다른 로직을 실행하는 대화형 팝업을 쉽게 구현할 수 있습니다.
또한 messagebox 모듈에는 askquestion() 외에도 showinfo(), showwarning(), showerror(), askyesno() 등 다양한 팝업 함수가 제공되므로, 용도에 맞게 활용하면 더욱 풍부한 사용자 경험을 제공할 수 있습니다.