윈도우 프로그램 메세지박스

강의노트 messagebox

강의노트 • 조회수 55 • 댓글 0 • 작성 4주 전 • 수정 4주 전  
  • messagebox

messagebox

messagebox는 프로그램 실행 중 사용자에게 메시지를 보여주거나 확인을 요청할 때 사용하는 대화 상자이다.

보통 알림창, 경고창, 질문창, 오류창 등으로 활용한다.

GUI 프로그램에서는 print( )대신 사용자에게 직접 메시지를 보여줄 때 유용하다.

주요 함수

함수 설명 반환값 이미지
messagebox.showinfo(title, message) 정보 메시지 창 "ok"
messagebox.showwarning(title, message) 경고 메시지 창 "ok"
messagebox.showerror(title, message) 오류 메시지 차아 "ok"
messagebox.askquestion(title, message) 질문 (예/아니오) yes 또는 no
messagebox.askyesno(title, message) 질문 (예/아니오) True 또는 False
messagebox.askokcancel(title, message) 확인/취소 True 또는 False
messagebox.askretrycancel(title, message) 다시시도/취소 True 또는 False

기본 예제

정보 메시지

import tkinter as tk
from tkinter import messagebox

def show_info():
    messagebox.showinfo("정보", "작업이 완료되었습니다!")

root = tk.Tk()
root.title("MessageBox 예제")

btn = tk.Button(root, text="정보 보기", command=show_info)
btn.pack(padx=20, pady=20)

root.mainloop()

버튼을 클릭하면

경고/오류 메시지

def show_warning():
    messagebox.showwarning("경고", "저장하지 않았습니다!")

def show_error():
    messagebox.showerror("오류", "파일을 찾을 수 없습니다!")

tk.Button(root, text="경고 보기", command=show_warning).pack(pady=5)
tk.Button(root, text="오류 보기", command=show_error).pack(pady=5)

질문 (Yes/No)

def ask_question():
    answer = messagebox.askyesno("질문", "정말 종료하시겠습니까?")
    if answer:
        root.destroy()   # 창 닫기
    else:
        messagebox.showinfo("취소", "종료가 취소되었습니다.")

tk.Button(root, text="종료 확인", command=ask_question).pack(pady=5)

연습문제

  1. 버튼을 클릭하면 "환영합니다! 프로그램을 시작합니다."라는 정보창을 띄우는 프로그램을 작성하여라. 정답 :
import tkinter as tk
from tkinter import messagebox

root = tk.Tk()
root.title("과제 1")

def start_program():
    messagebox.showinfo("환영", "환영합니다! 프로그램을 시작합니다.")

tk.Button(root, text="시작", command=start_program).pack(pady=20)

root.mainloop()
  1. 버튼을 클릭하면 "이 파일을 삭제하시겠습니까?"라는 Yes/No 질문창을 띄우고, "Yes"를 선택하면 "삭제되었습니다." "No"를 선택하면 "삭제가 취소되었습니다." 를 출력하도록 만드세요.

정답 :

def delete_file():
    answer = messagebox.askyesno("삭제 확인", "이 파일을 삭제하시겠습니까?")
    if answer:
        messagebox.showinfo("결과", "삭제되었습니다.")
    else:
        messagebox.showinfo("결과", "삭제가 취소되었습니다.")

tk.Button(root, text="파일 삭제", command=delete_file).pack(pady=10)
  1. 로그인 버튼을 눌렀을 때, 아이디 입력창이 비어있으면 "아이디를 입력하세요!" (경고창) 그렇지 않으면 "로그인 성공!" (정보창) 을 띄우는 프로그램을 작성하세요.

정답 :

entry = tk.Entry(root)
entry.pack(pady=5)

def login():
    if entry.get() == "":
        messagebox.showwarning("경고", "아이디를 입력하세요!")
    else:
        messagebox.showinfo("로그인", "로그인 성공!")

tk.Button(root, text="로그인", command=login).pack(pady=10)
  1. 프로그램 종료 버튼을 누르면 "정말 종료하시겠습니까?" (확인/취소)를 보여주고 "확인"이면 프로그램을 종료하고 "취소"를 누르면 "취소되었습니다." 출력한다.

정답 :

def exit_program():
    answer = messagebox.askokcancel("종료", "정말 종료하시겠습니까?")
    if answer:
        root.destroy()
    else:
        messagebox.showinfo("취소", "취소되었습니다.")

tk.Button(root, text="종료", command=exit_program).pack(pady=10)
첫 글입니다.
마지막 글입니다.
댓글
댓글로 소통하세요.