티스토리 뷰
import tkinter as tk
class OptionMenu:
width = 90
font = ("Ubuntu", 12)
side = "top"
label = None
menus = list()
@classmethod
def create_menus(cls, win, menus):
cls.menus = [{"menu": OptionMenu(option_list=menu, win=win, index=i), "text": menu[0]} for i, menu in enumerate(menus)]
OptionMenu.add_label()
def __init__(self, option_list=None, win=None, index=None):
self.option_list = option_list
self.var = tk.StringVar(win)
self.var.set(self.option_list[0])
self.var.trace("w", self.callback)
self.index = index
self.menu = tk.OptionMenu(win, self.var, *self.option_list)
self.menu.config(width=OptionMenu.width, font=OptionMenu.font)
self.menu.pack(side=OptionMenu.side)
def callback(self, *args):
OptionMenu.menus[self.index]["text"] = self.var.get()
OptionMenu.set_label()
@classmethod
def add_label(cls):
cls.label = tk.Label(text="", font=cls.font, fg='blue')
cls.label.pack(side="top")
@classmethod
def set_label(cls):
texts = [menu["text"] for menu in cls.menus]
dress = Fashion.get_dress(texts)
cls.label.configure(text=dress)
class Fashion:
season = None
temperature = None
is_accessories = None
is_comfortable = None
is_outer = None
options = [
("봄", "여름", "가을", "겨울"),
("따뜻한", "시원한"),
("악세사리 착용", "악세사리 없음"),
("편안한 신발", "편안하지 않은 신발"),
("겉옷 착용", "겉옷 없음"),
]
tops = {
"봄": {"따뜻한": "빨간색 긴팔", "시원한": "흰색 긴팔"},
"여름": {"따뜻한": "빨간색 반팔", "시원한": "흰색 반팔"},
"가을": {"따뜻한": "빨간색 니트", "시원한": "파란색 니트"},
"겨울": {"따뜻한": "빨간색 목폴라", "시원한": "파란색 니트"},
}
bottoms = {
"봄": {"따뜻한": "진한 청바지", "시원한": "연한 청치마"},
"여름": {"따뜻한": "베이지 면치마", "시원한": "연한 숏 청바지"},
"가을": {"따뜻한": "베이지 긴바지", "시원한": "하늘색 원피스"},
"겨울": {"따뜻한": "베이지 긴바지", "시원한": "체크무늬 롱셔츠"},
}
accessories = {
"봄": {"따뜻한": "검정 에코백", "시원한": "네이비 캡"},
"여름": {"따뜻한": "흰색 캡", "시원한": "하늘색 팔찌"},
"가을": {"따뜻한": "갈색 머플러", "시원한": "베이지 머플러"},
"겨울": {"따뜻한": "갈색 머플러", "시원한": "검정 머플러"},
}
outers = {
"봄": "트렌치코트",
"여름": "흰색 롱셔츠",
"가을": "트렌치코트",
"겨울": "베이지울코트",
}
shoes = {
"봄": {"따뜻한": {"편안한 신발": "흰색 캔버스", "편안하지 않은 신발": "갈색워커"},
"시원한": {"편안한 신발": "검정 캔버스", "편안하지 않은 신발": "검정 로퍼"}, },
"여름": {"따뜻한": {"편안한 신발": "흰색 캔버스", "편안하지 않은 신발": "검정 구두"},
"시원한": {"편안한 신발": "흰색 샌들", "편안하지 않은 신발": "흰색 워커"}, },
"가을": {"따뜻한": {"편안한 신발": "검정 캔버스", "편안하지 않은 신발": "검정 구두"},
"시원한": {"편안한 신발": "흰색 캔버스", "편안하지 않은 신발": "검정 로퍼"}, },
"겨울": {"따뜻한": {"편안한 신발": "검정 캔버스", "편안하지 않은 신발": "검정 구두"},
"시원한": {"편안한 신발": "흰색 캔버스", "편안하지 않은 신발": "검정 워커"}, },
}
@classmethod
def convert(cls, words):
cls.season, cls.temperature, cls.is_accessories, cls.is_comfortable, cls.is_outer = words
@classmethod
def get_dress(cls, words):
cls.convert(words)
top = cls.tops[cls.season][cls.temperature]
bottom = cls.bottoms[cls.season][cls.temperature]
accessory = cls.accessories[cls.season][cls.temperature] if "없음" not in cls.is_accessories else "없음"
outer = cls.outers[cls.season] if "없음" not in cls.is_outer else "없음"
shoe = cls.shoes[cls.season][cls.temperature][cls.is_comfortable]
return f"상의: {top}\n하의: {bottom}\n악세사리: {accessory}\n겉옷: {outer}\n신발: {shoe}"
app = tk.Tk()
app.title("Fashion")
app.geometry('400x250')
OptionMenu.create_menus(app, Fashion.options)
app.mainloop()
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Tistory
- 파이썬
- admin.py
- 엑셀 비교
- 장고 카톡 자동응답
- 모바일 테마 적용
- gitlab
- Python
- 면접정답
- GIT
- 플러스친구 자동응답
- PuTTYGen
- wsgi
- pycrypto
- 장고 플러스친구 자동응답
- virtualenv
- 장고
- chatbot
- 모바일 스킨 적용
- 문과 코딩
- gitignore
- 파이썬 프로그래밍
- django
- 파이썬 입문
- 파이썬 강좌
- 면접답변
- django chatbot
- 문서 비교
- 파이썬 독학
- 이미지 비교
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함