Vor kurzem scheint die Zuckerrestriktionsdiät beliebt zu sein. Als ich dachte, ich hätte sie ausprobiert, kam ich auf die Website des Bildungsministeriums und begann zu denken, dass sie genau richtig für diese Aufgabe war.
Laden Sie die japanische Liste der Lebensmittelzutaten Excel (japanische Version) (Kollektiv) von [Ministerium für Bildung, Kultur, Sport, Wissenschaft und Technologie] herunter (https://www.mext.go.jp/a_menu/syokuhinseibun/1365420.htm).
Es gibt Daten, die als Zeichenfolge eingegeben werden. Seien Sie also vorsichtig, wenn Sie sie für Berechnungen usw. verwenden. (Original Mama)
Bitte beachte, dass. Legen Sie es in das gleiche Verzeichnis.
Laden Sie die Abbildung von [Abbildung] herunter (https://www.irasutoya.com/2013/09/blog-post_4689.html). Benennen Sie es in ** fat.png ** um und legen Sie es im selben Verzeichnis ab.
»Es war schmerzhaft, aus meiner Schlussfolgerung zu sagen ――Ich wurde an die Probleme der grafischen Benutzeroberfläche erinnert
main.py
self.frame5 = tk.Frame(self.root, width=self.root.winfo_width() * 0.6, height=self.root.winfo_height() * 0.1, bg="#CCFFCC")
self.button2 = tk.Button(
self.frame5, text="Berechnung", font=(u'Meilio', 17), width=40)
self.button2.bind("<Button-1>", self.show_result)
self.frame5.place(x=512, y=648)
self.frame5.pack_propagate(0)
self.button2.pack(expand=True)
self.root.mainloop()
main.py
self.list2 = self.listbox2.get(0, tk.END)
self.list3 = self.listbox3.get(0, tk.END)
self.list3 = [float(i.replace("(g)", ""))*0.01 for i in self.list3]
self.cal = 0
self.toshitsu = 0
for i in range(len(self.list2)):
self.number = self.shokuhinmei.index(self.list2[i])
self.cal += self.eiyolist[self.number][5]*self.list3[i]
if self.eiyolist[self.number][16] != "Tr":
self.toshitsu += float(self.eiyolist[self.number]
[16])*self.list3[i]
self.frame1.destroy()
self.frame2.destroy()
self.frame3.destroy()
self.frame4.destroy()
self.frame5.destroy()
self.canvas = tk.Canvas(self.root, width=1280, height=720)
self.pngfile = tk.PhotoImage(file="fat.png ")
self.cal = str(round(self.cal, 1)) + "kcal"
self.toshitsu = str(round(self.toshitsu, 1)) + "G"
self.canvas.create_image(400, 400, image=self.pngfile)
self.canvas.create_text(900, 180, text="Kalorien aufgenommen",
font=(u'Meilio', 60))
self.canvas.create_text(900, 300, text=self.cal,
font=(u'Meilio', 60, "bold"), fill="red")
self.canvas.create_text(900, 420, text="Menge des aufgenommenen Zuckers",
font=(u'Meilio', 60))
self.canvas.create_text(900, 540, text=self.toshitsu,
font=(u'Meilio', 60, "bold"), fill="red")
self.canvas.place(x=0, y=0)
main.py
# -*- coding: utf-8 -*-
import tkinter as tk
import time
import re
import xlrd
excel_path = '1365334_1r12.xlsx'
pic_path = "fat.png "
class app():
def __init__(self, excel_path, pic_path):
self.pic_path = pic_path
self.int_seiki = re.compile(r"^[1-9]\d*$")#Kompilieren"
self.sheet = xlrd.open_workbook(excel_path).sheet_by_name('Dieser Tisch')
self.eiyolist = [self.sheet.row_values(row)
for row in range(self.sheet.nrows) if row > 7]
self.shokuhinmei = [self.eiyolist[i][3].replace(
'\u3000', " ") for i in range(len(self.eiyolist))]
self.root = tk.Tk()
self.root.geometry("1280x720")
self.root.title("Kalorienberechnung")
self.root.resizable(0, 0)
self.create()
def create(self):
#Variablen, die zuerst deklariert werden müssen
self.juhuku = None
self.itemid = "None"
self.root.update_idletasks() #Magie zum Laden von winfo
self.frame1 = self.create_pack_frame(self.root, 0.4, 1, "#CCFFCC")
self.kensaku = self.create_pack_label(self.frame1, "Suche")
self.entry = self.create_pack_entry(self.frame1, bind=(
'<KeyRelease>', self.show_list), padx=30, pady=5)
self.kouho = self.create_pack_label(self.frame1, "Kandidat")
self.listbox = self.create_pack_listbox(
self.frame1, fontsize=10, func=("<Leave>", self.clicked), bg="white", padx=3, pady=5) #Die Funktionen, die ich auf verschiedene Weise ausprobiert habe, haben damit gut funktioniert
self.gram = self.create_pack_label(self.frame1, "Gramm(g)")
self.gramentry = self.create_pack_entry(
self.frame1, bind=('<Return>', self.insert), pady=5)
self.button1 = tk.Button(
self.frame1, text="Einfügen", font=(u'Meilio', 10), width=10)
self.button1.bind("<Button-1>", self.insert)
self.button1.place(x=380, y=680)
# frame2---------------------------------------------------------------
self.frame2 = self.create_pack_frame(self.root, 0.48, 0.9)
self.listbox2 = self.create_pack_listbox(self.frame2)
# frame3---------------------------------------------------------------
self.frame3 = self.create_pack_frame(self.root, 0.1, 0.9)
self.listbox3 = self.create_pack_listbox(self.frame3)
# frame4---------------------------------------------------------------
self.frame4 = self.create_pack_frame(self.root, 0.02, 0.9)
self.listbox4 = self.create_pack_listbox(
self.frame4, bg="pink", func=("<Double-Button-1>", self.deleteC))
# frame5---------------------------------------------------------------
self.frame5 = tk.Frame(self.root, width=self.root.winfo_width(
) * 0.6, height=self.root.winfo_height() * 0.1, bg="#CCFFCC")
self.button2 = tk.Button(
self.frame5, text="Berechnung", font=(u'Meilio', 17), width=40)
self.button2.bind("<Button-1>", self.show_result)
self.frame5.place(x=512, y=648)
self.frame5.pack_propagate(0)
self.button2.pack(expand=True)
self.root.mainloop()
def create_pack_entry(self, frame, fontsize=15, bind=None, fill=None, padx=0, pady=0):
self.New_entry = tk.Entry(frame, font=(u'Meilio', fontsize))
if len(bind) == 2:
self.New_entry.bind(bind[0], bind[1])
self.New_entry.pack(fill=fill, padx=padx, pady=pady)
return self.New_entry
def create_pack_label(self, frame, text, fontsize=15, bg="#CCFFCC"):
self.label = tk.Label(frame, text=text,
font=(u'Meilio', fontsize), bg=bg)
self.label.pack()
return self.label
def create_pack_frame(self, root, width, height, bg="white"):
self.New_frame = tk.Frame(root, width=root.winfo_width(
) * width, height=root.winfo_height()*height, bg=bg)
self.New_frame.pack(anchor=tk.NW, side='left', expand=True)
self.New_frame.pack_propagate(0)
return self.New_frame
def create_pack_listbox(self, frame, fontsize=15, bg="#CCFFCC", func=None, padx=0, pady=0, height=20):
self.New_listbox = tk.Listbox(frame, font=(
u'Meilio', fontsize), bg=bg, height=height)
if func != None:
self.New_listbox.bind(func[0], func[1])
self.New_listbox.pack(fill='both', expand=True, padx=padx, pady=pady)
return self.New_listbox
def show_list(self, event):
if self.juhuku == self.entry.get(): #Es ist schwer, wenn Sie es zum Zeitpunkt der Eingabe kontinuierlich tun, also Gegenmaßnahmen
return
self.juhuku = self.entry.get()
self.select_food = []
self.listbox.delete(0, tk.END)
for i in self.shokuhinmei:
if self.juhuku in i:
self.listbox.insert(tk.END, i)
self.select_food.append(i)
def insert(self, event):
if len(self.itemid) == 1 and re.match(self.int_seiki, self.gramentry.get()):
self.listbox2.insert(tk.END, self.select_food[self.itemid[0]])
self.listbox3.insert(tk.END, self.gramentry.get() + "(g)")
self.listbox4.insert(tk.END, "✖")
def clicked(self, event):
if self.listbox.curselection() == (): #Diese Art zu schreiben, weil sie verschwindet, wenn Sie sie nicht halten. Es wird jedoch ein Fehler ausgelöst
return
self.itemid = self.listbox.curselection()
def deleteC(self, event):
if self.listbox4.curselection() == ():
return
self.listbox2.delete(self.listbox4.curselection()[0])
self.listbox3.delete(self.listbox4.curselection()[0])
self.listbox4.delete(self.listbox4.curselection()[0])
def show_result(self, event):
self.list2 = self.listbox2.get(0, tk.END)
self.list3 = self.listbox3.get(0, tk.END)
self.list3 = [float(i.replace("(g)", ""))*0.01 for i in self.list3]
self.cal = 0
self.toshitsu = 0
for i in range(len(self.list2)):
self.number = self.shokuhinmei.index(self.list2[i])
self.cal += self.eiyolist[self.number][5] * self.list3[i]
self.tansuikabutsu = float(
self.eiyolist[self.number][16]) if self.eiyolist[self.number][16] != "Tr" else 0
self.shokumotsuseni = float(self.eiyolist[self.number][20].replace(
"(", "").replace(")", "").replace("-", "0").replace("Tr", "0"))
self.sa = self.tansuikabutsu - self.shokumotsuseni
if self.sa >= 0:
self.toshitsu += self.sa*self.list3[i]
self.frame1.destroy()
self.frame2.destroy()
self.frame3.destroy()
self.frame4.destroy()
self.frame5.destroy()
self.canvas = tk.Canvas(self.root, width=1280, height=720)
self.pngfile = tk.PhotoImage(file=self.pic_path)
self.cal = str(round(self.cal, 1)) + "kcal"
self.toshitsu = str(round(self.toshitsu, 1)) + "G"
self.canvas.create_image(400, 400, image=self.pngfile)
self.canvas.create_text(900, 180, text="Kalorien aufgenommen",
font=(u'Meilio', 60))
self.canvas.create_text(900, 300, text=self.cal,
font=(u'Meilio', 60, "bold"), fill="red")
self.canvas.create_text(900, 420, text="Menge des aufgenommenen Zuckers",
font=(u'Meilio', 60))
self.canvas.create_text(900, 540, text=self.toshitsu,
font=(u'Meilio', 60, "bold"), fill="red")
self.canvas.bind("<Double-Button-1>", self.moto)
self.canvas.place(x=0, y=0)
def moto(self, event):
self.canvas.destroy()
self.create()
if __name__ == "__main__":
app = app(excel_path, pic_path)
Ich bin froh, dass das, was ich dachte, in Form war. Ich denke jedoch, dass es viele Verbesserungen gibt, daher möchte ich sie beheben.
Ministerium für Bildung, Kultur, Sport, Wissenschaft und Technologie Abbildungen Aufnahme von unten nach oben Blog Ich möchte Ingenieur werden
Recommended Posts