티스토리 뷰
10. 메시지 박스
메세지 박스는 에러 같은 것이 났을 때 팝업으로 뜨는 것을 의미한다.
1 메세지 박스를 위한 모듈을 불러온다. 이름을 MSG박스라고 설정해준다.
44 우선 인포라는 함수를 가져다 쓰는 버튼
9 쇼임포는 창이 뜨는 것을 의미한다.
45 경고 버튼 만들고
12 경고 함수 만들고 쇼 워밍은 아래 그림처럼 노란색으로 뜬다.
15 에러는 빨간색으로 엑스 박스 모양이 뜬다.
48 캔슬
18 캔슬관련으로 에스크 캔슬은 물음표 모양이 나오고 확인 취소가 나온다.
앞에서는 확인만 됐었음.
21 재시도 취소 에스크 트라이 캔슬 함수를 사용해서 쓰면 버튼이 다시 시도와 취소로 뜸.
응답을 1,0으로 예와 아니오로 받을 수 있음.
28 에스노 함수는 예아 니오 나온다.
31 에스노 캔슬 함수는 에스노 캔슬 3 가지 있다. 응답에 따라 에스면 1 노면 0 아무것도 입력되지 않거나 그밖에 것이면 취소가 됨.
https://docs.python.org/3/library/tkinter.messagebox.html?highlight=messagebox
12. 프레임, 외곽선으로 위젯들을 하나의 박스 안에 넣는 것을 의미한다.
초기화시켜주고 햄버거 했던 예제 다시 생각해본다.
12 버거 프레임을 프레임 함수를 써서 만들어준다. 릴리프는 테두리를 나타내고 bd는 외곽선 굵기를 의미한다.
15 버튼에 브래 임 버거를 넣어준다.
13 팩키징 할 때 위치를 레프트로 하고 필은 위아래로 채우는 것은 보스로 해준다. 그럼 꽉 채우는 것을 의미한다. 위아래로 꽉 채워주고 익스팬드는 가로세로로 해서 중간까지 채우는 것이다 그럼 트루로 되면 펼쳐진다. 아래 음료도 똑같이 해준다.
20 음료 프레임을 만든다 라벨 프레임 함수는 프레임에 라벨이 들어갈 수 있다. 글자는 음료를 넣어주고
21 위치는 라이트에 채워지고 위아래로 보스 해서 채워지고 익스팬드로 양옆으로 채워진다.
7 라벨을 메뉴를 선택해주세요 하고 사이드는 탑으로 해준다. 그럼 위로 올라간다.
9 버튼을 만들어주고 팩에 사이드는 보텀으로 해서 제일 밑으로 내려간다.
라디오 버튼으로 하면 클릭해서 선택하기 그리고 선택한 것 출력하기 같은 프로젝트 만들 수 있다.
키오스크 프로그램
from re import T
from tkinter import *
import tkinter.messagebox as msgbox
global buger
global money
money=0
root = Tk()
root.title("Nado GUI")
root.geometry("300x200") # 가로 * 세로
def bf():
global buger
buger="비프버거"
def cj():
global buger
buger="치즈버거"
def ck():
global buger
buger="치킨버거"
def gt():
global side
side="감자튀김"
def ot():
global side
side="오징어튀김"
def cl():
global drink
drink="콜라"
def sid():
global drink
drink="사이다"
def jm():
global money
if buger == "비프버거":
money+= 3000
elif buger =="치즈버거":
money+= 3500
elif buger =="치킨버거":
money+= 4000
if drink=="콜라":
money+= 1000
elif drink== "사이다":
money+= 1500
if side=="감자튀김":
money+= 2000
elif side =="오징어튀김":
money+= 2500
respone=msgbox.askyesnocancel(title="주문내역", message="주문내역은 {}, {}, {}이고 총가격은 : {}입니다.\n 주문하시려면 예, 아니시면, 아니오, 돌아가시려면 취소를 눌러주세요.". format(buger, drink, side, money))
print(respone)
if respone == True:
msgbox.showinfo("알림", "카드를 넣어주세요.")
elif respone == False:
msgbox.showinfo("알림", "다시 선택해주세요.")
money=0
elif respone == None:
msgbox.showinfo("알림", "프로그램을 종료합니다.")
root.quit()
Label(root, text="메뉴를 선택해 주세요"). pack(side="top")
Button(root, text="주문하기", command=jm). pack(side="bottom")
# 메뉴 프레임
frame_burger = LabelFrame(root, text ="버거", relief="solid", bd=1)
frame_burger.pack(side="left", fill="both", expand=True)
Button(frame_burger, text="비프버거 : 3000", command=bf). pack()
Button(frame_burger, text="치즈버거 : 3500", command=cj). pack()
Button(frame_burger, text="치킨버거 : 4000", command=ck). pack()
# 음료 프레임
frame_drink = LabelFrame(root, text="음료", relief="solid", bd=1)
frame_drink.pack(side="left", fill="both",expand=True)
Button(frame_drink, text="콜라 : 1000", command=cl). pack()
Button(frame_drink, text="사이다 : 1500", command=sid). pack()
# 사이드 프레임
frame_side = LabelFrame(root, text="사이드", relief="solid", bd=1)
frame_side.pack(side="left", fill="both",expand=True)
Button(frame_side, text="감자튀김 : 2000", command=gt). pack()
Button(frame_side, text="오징어튀김 : 2500", command=ot). pack()
root.mainloop()