프로그램
[파이썬] 문제 : 음식 선택하면 음식 사진과 칼로리 정보 표시(tkinter)
오디세이99
2023. 4. 22. 08:20
728x90
반응형
from tkinter import *
# 음식명에 따른 이미지 파일명과 칼로리 정보
data = {'갈비':['food01.png',200], '감자':['food02.png',110]}
root = Tk()
root.geometry("280x420")
root.title("칼로리 정보")
root.resizable(True, True)
def ok_click(): # ok 버튼 클릭시 함수
# print(ent1.get())
in_str = ent1.get() # 입력 문자열 가죠옴
if in_str in data.keys(): # 입력 문자열이 data 딕셔너리의 키 중에 있으면 동작
img_file = data[ent1.get()][0] # data 딕셔너리에서 키로 찾은 정보는 리스트. 리스트의 0번은 이미지파일명
img_text = data[ent1.get()][1] # 리스트의 1번은 칼로리 정보
# print(img_file, img_text)
canvas.delete('all') # 화면 clear
img = PhotoImage(file=img_file) # 이미지 불러옴
canvas.create_image(150, 150, image=img) # canvas에 이미지 로드
canvas.create_text(20, 50, text=img_text, fill="red", font=('Helvetica 15 bold')) # 컬로리 정보 canvas에 씀
canvas.pack()
root.mainloop()
lbl1 = Label(root, text="갈비")
lbl1.pack()
ent1 = Entry(root, width=35)
ent1.pack()
canvas = Canvas(root, width=300, height=300, background='gray')
canvas.pack(anchor='e')
btnO = Button(root, text='Ok', width=15, command=ok_click) # 버큰 클릭시 함수 사용하도록 수정
btnO.pack(side='left', padx=10)
btnC = Button(root, text='Cancel', width=15)
btnC.pack(side='right', padx=10)
root.mainloop()
728x90
반응형