메시지 박스는 사용자에게 추가 정보나 경고, 오류 발생여부에 대해서 피드백을 제공하기 위해서
기존의 윈도우에서 독립적인 추가 윈도우를 말한다.
이는 messagebox 모듈을 임포트 하기만 하면 간단하게 생성하고 조작할 수 있다.
◆ 파이썬 GUI 메시지 상자 만들기
tkinter.messagebox.상자종류("제목","내용")
- 여기서 상자 종류와 내용만 바꾸며 메시지 상자가 바뀌게 됩니다.
◆ 파이썬 GUI 메시지 상자 종류 (7가지)
![]() |
메시지 상자 종류 - showinfo 평범한 정보 파란 동그라미에 느낌표가 있고 확인 버튼 밖에 없습니다. tkinter.messagebox.showinfo("제목", "메시지 내용") |
![]() |
메시지 상자 종류 - showwarning 경고 문구 노란 삼각형안에 느낌표가 있습니다. tkinter.messagebox.showwarning("제목", "메시지 내용") |
![]() |
메시지 상자 종류 - showerror 오류 정보 tkinter.messagebox.showerror("제목", "메시지 내용") |
![]() |
메시지 상자 종류 - askquestion 사용자에게 질문 tkinter.messagebox.askquestion("제목", "메시지 내용") |
![]() |
메시지 상자 종류 - askokcancel 대답은 ok / cancel 입니다 tkinter.messagebox.askyesno("제목", "메시지 내용") |
![]() |
메시지 상자 종류 - askyesno 대답은 yes / no 입니다 tkinter.messagebox.askyesno("제목", "메시지 내용") |
![]() |
메시지 상자 종류 - askretrycancel 대답은 Retry / Cancel 입니다 tkinter.messagebox.askretrycancel("제목", "메시지 내용") |
▶ [ 파이썬 GUI 메시지 상자 1 ]
- 다음은 파이썬 GUI 메시지박스 만들기 코드입니다. 실행시켜보세요
from tkinter import *
from tkinter import messagebox as msg
window = Tk()
window.geometry('500x300')
window.title("메세지박스 공부하기")
#버튼1 함수
def msg1():
msg.showinfo("메시지박스 제목","메세지박스 연습입니다")
#버튼 만들기
Bu1=Button(window, text="메시지박스", width = 10, command=msg1)
Bu1.pack(pady=20)
#메인 반복문 실행
window.mainloop()
------------------------------------------------------------------------
▶ [ 파이썬 GUI 메시지 상자 2 ]
- 파이썬 GUI 메시지 상자 종류에 관한 코드입니다
from tkinter import *
from tkinter import messagebox as msg
window = Tk()
window.geometry('300x500')
window.title("메세지박스 공부하기")
#버튼1 함수
def msg1():
msg.showinfo("메시지박스","메세지박스 \n연습입니다\n(파란 느낌의 아이콘)")
#버튼2 함수
def msg2():
msg.showwarning("메시지박스","메세지박스 \n연습입니다\n(노란 느낌의 아이콘)")
#버튼3 함수
def msg3():
msg.showerror("메시지박스","메세지박스 \n연습입니다\n(빨강 엑스 아이콘)")
#버튼4 함수
def msg4():
msg.askquestion("메시지박스","메세지박스 \n연습입니다\n(파란 물음표)\n (Yes/No)")
#버튼5 함수
def msg5():
msg.askokcancel("메시지박스","메세지박스 \n연습입니다\n(파란 물음표)\n (Yes/Cancel)")
#버튼6 함수
def msg6():
msg.askyesno("메시지박스","메세지박스 \n연습입니다\n(파란 물음표)\n (Yes/No)")
#버튼7 함수
def msg7():
msg.askretrycancel("메시지박스","메세지박스 \n연습입니다\n(파란 물음표)\n (Try/Cancel)")
#버튼8 함수
def msg8():
window.destroy()
window.quit()
#버튼 만들기1
Bu1=Button(window, text="클릭(info)", width = 10, command=msg1)
Bu1.pack(pady=5)
#버튼 만들기2
Bu2=Button(window, text="클릭(warning)", width = 10, command=msg2)
Bu2.pack(pady=5)
#버튼 만들기3
Bu3=Button(window, text="클릭(error)", width = 10, command=msg3)
Bu3.pack(pady=5)
#버튼 만들기4
Bu4=Button(window, text="클릭(question)", width = 15, command=msg4)
Bu4.pack(pady=5)
#버튼 만들기5
Bu5=Button(window, text="클릭(Yes/Cancel)", width = 15, command=msg5)
Bu5.pack(pady=5)
#버튼 만들기6
Bu6=Button(window, text="클릭(Yes/No)", width = 15, command=msg6)
Bu6.pack(pady=5)
#버튼 만들기7
Bu7=Button(window, text="클릭(Try)", width = 10, command=msg7)
Bu7.pack(pady=5)
#버튼 만들기8
Bu8=Button(window, text="종료", width = 10, command=msg8)
Bu8.pack(pady=5)
#메인 반복문 실행
window.mainloop()
------------------------------------------------------------------------------------------
▶ [ 파이썬 GUI 메시지 상자 3 ]
- 메시지상자에서 확인 버튼을 누르면 파이썬이 종료되고 취소버튼을 누르면 아무일도 일어나지 않게 코딩해보세요

from tkinter import *
from tkinter import messagebox as msg
window = Tk()
window.geometry('300x200')
window.title("메세지박스 공부하기")
#버튼1 함수
def msg1():
str = msg.askquestion("메시지상자","파이썬을 종료할까요?")
if str == 'yes':
window.destroy()
else:
msg.showinfo("메시지상자","취소버튼을 \n누르셨습니다")
#버튼2 함수
def msg2():
window.destroy()
window.quit()
#버튼 만들기1
Bu1=Button(window, text="클릭", width = 10, command=msg1)
Bu1.pack(pady=5)
#버튼 만들기2
Bu2=Button(window, text="종료", width = 10, command=msg2)
Bu2.pack(pady=5)
#메인 반복문 실행
window.mainloop()
-----------------------------------------------------------------------------
▶ [ 파이썬 GUI 메시지 상자 4 ]
- 다음과 같이 봄여름가을겨울 사진을 나타내고 버튼을 클릭하면 메시지를 출력하는 프로그램을 만들어 보세요.

from tkinter import *
from tkinter import messagebox as msg
w = Tk()
w.geometry('500x400')
w.title("파이썬")
def spring():
msg.showinfo("계절","봄입니다")
def summer():
msg.showinfo("계절","여름입니다")
def fall():
msg.showinfo("계절","가을입니다")
def winter():
msg.showinfo("계절","겨울입니다")
sprimg = PhotoImage(file = "봄.png")
sprlabel = Label(w, image = sprimg)
sprlabel.place(x=193, y=45)
spr = Button(w, text="버튼", width = 5, command = spring)
spr.place(x=220, y=10)
sumimg = PhotoImage(file = "여름.png")
sumlabel = Label(w, image = sumimg)
sumlabel.place(x=295, y=150)
summ = Button(w, text="버튼", width = 5, command = summer)
summ.place(x=415, y=190)
falimg = PhotoImage(file = "가을.png")
fallabel = Label(w, image = falimg)
fallabel.place(x=90, y=150)
fall = Button(w, text="버튼", width = 5, command = fall)
fall.place(x=30, y=190)
winimg = PhotoImage(file = "겨울.png")
winlabel = Label(w, image = winimg)
winlabel.place(x=193, y=254)
win = Button(w, text="버튼", width = 5, command = winter)
win.place(x=220, y=365)
w.mainloop()
'파이썬 GUI' 카테고리의 다른 글
6. 파이썬 위젯 - 라디오버튼 (0) | 2020.12.13 |
---|---|
5. 파이썬 위젯 - 텍스트 상자 (0) | 2020.12.11 |
4. 파이썬 GUI - 입력창(Entry) (0) | 2020.12.10 |
2. 파이썬 GUI - 위젯 배치하기(grid, pack, place) (0) | 2020.12.08 |
1. 파이썬 GUI - 기본 프레임 / 레이블 위젯 (0) | 2020.12.06 |