import tkinter as tk
from functools import partial
tempVal = "Sedentario"
tempVal1 = "Masculino"
def store_temp(sel_temp):
global tempVal
tempVal = sel_temp
def store_temp1(sel_temp1):
global tempVal1
tempVal1 = sel_temp1
def call_convert(rlabel1, IdadeInput, AlturaInput, PesoInput):
idade = IdadeInput.get()
altura = AlturaInput.get()
peso = PesoInput.get()
if idade.isdigit() and altura.replace(".", "", 1).isdigit() and peso.replace(".", "", 1).isdigit():
idade = float(idade)
altura = float(altura)
peso = float(peso)
if tempVal1 == "Masculino":
calorias_base = float(88.362 + (13.397 * peso) + (4.799 * altura) - (5.677 * idade))
elif tempVal1 == "Feminino":
calorias_base = float(447.593 + (9.247 * peso) + (3.098 * altura) - (4.330 * idade))
if tempVal == 'Sedentario':
calorias_finais = round((calorias_base * 1.2), 2)
rlabel1.config(text="Ingestão diária de calorias recomendada \n"
"é de aproximadamente %f\n calorias." % calorias_finais)
elif tempVal == 'Leve':
calorias_finais = round((calorias_base * 1.375), 2)
rlabel1.config(text="Ingestão diária de calorias recomendada\n"
" é de aproximadamente %f\n calorias." % calorias_finais)
elif tempVal == 'Moderado':
calorias_finais = round((calorias_base * 1.55), 2)
rlabel1.config(text="Ingestão diária de calorias recomendada \n"
"é de aproximadamente %f \ncalorias." % calorias_finais)
elif tempVal == 'Activo':
calorias_finais = round((calorias_base * 1.725), 2)
rlabel1.config(text="Ingestão diária de calorias recomendada \n"
"é de aproximadamente %f \n calorias." % calorias_finais)
elif tempVal == 'Muito activo':
calorias_finais = round((calorias_base * 1.9), 2)
rlabel1.config(text="Ingestão diária de calorias recomendada\n"
" é de aproximadamente %f \ncalorias." % calorias_finais)
else:
rlabel1.config(text="Por favor, insira valores numéricos válidos.")
root = tk.Tk()
root.geometry('500x500')
root.title('Calculadora Calorias')
root.configure(background='#09A3BA')
root.resizable(width=False, height=False)
root.grid_columnconfigure(1, weight=1)
root.grid_rowconfigure(0, weight=1)
IdadeInput = tk.StringVar()
AlturaInput = tk.StringVar()
PesoInput = tk.StringVar()
var = tk.StringVar()
var1 = tk.StringVar()
titulo =tk.Label(root, text="Calculadora Calorias", background='#09A3BA',
foreground="#FFFFFF",font=("Arial","35","bold"))
titulo.place(relx=0.05,rely=0.05)
Idade_label = tk.Label(root, text="Idade",
background='#09A3BA', foreground="#FFFFFF",
font=("Arial","18","bold"))
Idade_label.place(relx=0.25,rely=0.25)
Peso_label = tk.Label(root, text="Peso (em kg)",
background='#09A3BA', foreground="#FFFFFF",
font=("Arial","18","bold"))
Peso_label.place(relx=0.1,rely=0.35)
Altura_label = tk.Label(root, text="Altura (em cm)",
background='#09A3BA', foreground="#FFFFFF",
font=("Arial","18","bold"))
Altura_label.place(relx=0.09,rely=0.45)
idade_entry = tk.Entry(root, textvariable=IdadeInput, justify='center',font=("Arial", "12", "bold"))
idade_entry.place(relx=0.5,rely=0.25,relwidth=0.35)
peso_entry = tk.Entry(root, textvariable=PesoInput, justify='center',font=("Arial", "12", "bold"))
peso_entry.place(relx=0.5,rely=0.35,relwidth=0.35)
altura_entry = tk.Entry(root, textvariable=AlturaInput, justify='center',font=("Arial", "12", "bold"))
altura_entry.place(relx=0.5,rely=0.45,relwidth=0.35)
result_label1 = tk.Label(root, background='#09A3BA', foreground="#FFFFFF",font=("Arial", "13", "bold"))
result_label1.place(relx=0.03,rely=0.75,relwidth=0.9)
dropDownList = ["Sedentario", "Leve", "Moderado","Activo","Muito activo"]
dropdown = tk.OptionMenu(root, var, *dropDownList, command=store_temp)
var.set(dropDownList[0])
dropdown.place(relx=0.05,rely=0.55,relwidth=0.35)
dropdown.config(background='#09A3BA', foreground="#FFFFFF",font=("Arial", "12", "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF",font=("Arial", "12", "bold"))
dropDownList2 = ["Masculino", "Feminino"]
dropdown2 = tk.OptionMenu(root, var1, *dropDownList2, command=store_temp1)
var1.set(dropDownList2[0])
dropdown2.place(relx=0.55,rely=0.55,relwidth=0.35)
dropdown2.config(background='#09A3BA', foreground="#FFFFFF",font=("Arial", "12", "bold"))
dropdown2["menu"].config(background='#09A3BA', foreground="#FFFFFF",font=("Arial", "12", "bold"))
call_convert = partial(call_convert, result_label1, IdadeInput,AlturaInput,PesoInput)
result_button = tk.Button(root, text="Convert", command=call_convert,
background='#09A3BA', foreground="#FFFFFF",font=("Arial", "12", "bold"))
result_button.place(relx=0.25,rely=0.65,relwidth=0.5)
root.mainloop()