Récemment, il semble que le régime de restriction du sucre soit populaire, alors quand j'ai pensé l'avoir essayé, je suis arrivé sur le site Web du ministère de l'Éducation et j'ai commencé à penser qu'il était parfait pour la tâche.
Téléchargez la liste des ingrédients de la norme alimentaire japonaise Excel (version japonaise) (collective) auprès du Ministère de l'éducation, de la culture, des sports, des sciences et de la technologie
Certaines données sont saisies sous forme de chaîne de caractères, soyez donc prudent lorsque vous les utilisez pour des calculs, etc. (Original Mama)
Veuillez noter que. Mettez-le dans le même répertoire.
Téléchargez l'illustration sur Illustration. Renommez-le en ** fat.png ** et placez-le dans le même répertoire.
`` C'était douloureux de dire d'après la conclusion que j'ai faite ―― Je me suis souvenu de la gêne de l'interface graphique --98% du temps qu'il a fallu souffrir de l'interface graphique ――CUI vous suffit pour créer le vôtre ――Tkinter ne semble pas être très bon en premier lieu (je ne sais pas) ―― La détermination de créer une nouvelle interface graphique a surgi. «Au début, je voulais pouvoir changer la taille de la fenêtre, mais j'ai abandonné.
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="calculer", 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="Calories ingérées",
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="Quantité de sucre ingérée",
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*$")#Compiler"
self.sheet = xlrd.open_workbook(excel_path).sheet_by_name('Cette table')
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("Calcul des calories")
self.root.resizable(0, 0)
self.create()
def create(self):
#Variables qui doivent être déclarées en premier
self.juhuku = None
self.itemid = "None"
self.root.update_idletasks() #Magie pour charger winfo
self.frame1 = self.create_pack_frame(self.root, 0.4, 1, "#CCFFCC")
self.kensaku = self.create_pack_label(self.frame1, "Chercher")
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, "Candidat")
self.listbox = self.create_pack_listbox(
self.frame1, fontsize=10, func=("<Leave>", self.clicked), bg="white", padx=3, pady=5) #Les fonctions que j'ai essayées fonctionnaient bien avec ceci
self.gram = self.create_pack_label(self.frame1, "Gramme(g)")
self.gramentry = self.create_pack_entry(
self.frame1, bind=('<Return>', self.insert), pady=5)
self.button1 = tk.Button(
self.frame1, text="Insérer", 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="calculer", 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(): #C'est lourd si vous le faites en continu au moment de la saisie, donc des contre-mesures
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() == (): #Cette façon d'écrire car elle disparaît si vous ne la tenez pas. Cependant, cela induit un bug
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="Calories ingérées",
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="Quantité de sucre ingérée",
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)
Je suis content que ce que je pensais soit en forme. Cependant, je pense qu'il y a de nombreuses améliorations, alors j'aimerais les corriger.
Ministère de l'éducation, de la culture, des sports, des sciences et de la technologie Illustrations Enregistrer de bas en haut Blog Je veux devenir ingénieur
Recommended Posts