13. 메시지 박스
import tkinter.messagebox as msgbox
from tkinter import *
root = Tk()
root.title("WT GUI")
root.geometry("640x480") # 가로 X 세로 / 대문자X 하면 실행안됨
# 기차 예매 시스템 이라고 가정
def info():
msgbox.showinfo("알림", "정상적으로 예매 완료 되었습니다.")
def warn():
msgbox.showwarning("경고", "해당 좌석은 매진되었습니다.")
def error():
msgbox.showerror("에러","결제 오류가 발생했습니다.")
def okcancel():
msgbox.askokcancel("확인 / 취소", "해당 좌석은 유아 동반석입니다. 예매하시겠습니까?")
def retrycancel():
msgbox.askretrycancel("재시도 / 취소", "일시적인 오류입니다. 다시 시도하시겠습니까?")
def yesno():
msgbox.askyesno("예 / 아니오", "해당 좌석은 역방향입니다. 예매하시겠습니까?")
def yesnocancel():
response = msgbox.askyesnocancel(title=None, message="예매 내역이 저장되지 않았습니다.\n저장 후 프로그램을 저장하시겠습니까?")
# 네 : 저장 후 종료
# 아니오 : 저장하지 않고 종료
# 취소 : 프로그램 종료 취소 (현재화면에서 계속 작업)
print("응답 : ", response)
if response == 1:
print("예")
elif response == 0:
print("아니오")
else:
print("취소")
Button(root, command=info, text="알림").pack()
Button(root, command=warn, text="경고").pack()
Button(root, command=error, text="에러").pack()
Button(root, command=okcancel, text="확인 / 취소").pack()
Button(root, command=retrycancel, text="재시도 취소").pack()
Button(root, command=yesno, text="예 아니오").pack()
Button(root, command=yesnocancel, text="예 아니오 취소").pack()
root. mainloop()
주의사항
- import tkinter.messagebox as msgbox
: 별도로 messagebox 모듈 import 진행
- messagebox 의 속성에 따라 나타나는 알림창의 상태 표시(녹색)가 다름.
: 사용자의 선택 없이 알림만 전달( info / warinig / error )
- messagebox 의 속성에 따라 나타나는 알림창의 상태 표시(녹색)가 다름.
: 사용자의 선택을 할 수 있음. 선택에 따라 결과 값 전달 가능( okcancel / retrycancel / yesno / yesnocancel )
- response = msgbox.askyesnocancel(title=None, message="예매 내역이 ~ 저장하시겠습니까?")
: 해당 값을 변수(response)로 저장하여 해당 값을 반환 할 수 있음.
: '예(Y)' 를 선택할 경우, 해당 값이 response 값으로 저장되며 출력 시 Bool(True) 도는 상태 =1로 출력됨
: 예 = True, 1 / 아니오 = False , 0 / 취소 = None
14. frame
from tkinter import *
root = Tk()
root.title("WT GUI")
root.geometry("640x480") # 가로 X 세로 / 대문자X 하면 실행안됨
Label(root, text="메뉴를 선택해주세요").pack(side="top")
Button(root, text="주문하기").pack(side="bottom")
#메뉴 프레임
frame_burger = Frame(root, relief="solid", bd =1 ) #relief = 외곽선
frame_burger.pack(side="left", fill="both", expand=True)
Button(frame_burger, text = "햄버거").pack()
Button(frame_burger, text = "치즈햄버거").pack()
Button(frame_burger, text = "치킨햄버거").pack()
#음료 프레임
frame_drink = LabelFrame(root, text="음료" )
frame_drink.pack(side="right", fill="both", expand=True)
Button(frame_drink, text = "콜라").pack()
Button(frame_drink, text = "사이다").pack()
root. mainloop()
주의사항
- Label(root, text="메뉴를 선택해주세요").pack(side="top")
- Button(root, text="주문하기").pack(side="bottom")
- frame_burger.pack(side="left")
- frame_drink.pack(side="right")
: Label, Button의 pack 파라미터 중 side 의 위치를 설정 할 경우 해당 위치로 표기 가능
- frame_burger = Frame(root, relief="solid", bd =1 )
: relief = 외곽선 표시(solid = 실선)
보기 좋게 만드는게 마냥 쉽지만은 않다..ㅜㅠ
[Python 파이썬 독학 활용2편 2일차] GUI(tkinter) - 2-4 (0) | 2021.08.01 |
---|---|
[Python 파이썬 독학 활용2편 2일차] GUI(tkinter) - 2-3 (0) | 2021.08.01 |
[Python 파이썬 독학 활용2편 2일차] GUI(tkinter) - 2-1 (0) | 2021.08.01 |
[Python 파이썬 독학 활용2편 1일차] GUI(tkinter) - 1-3 (0) | 2021.07.30 |
[Python 파이썬 독학 활용2편 1일차] GUI(tkinter) - 1-2 (0) | 2021.07.29 |
댓글 영역