import tkinter as tk
from functools import partial
# Função para calcular o Índice de Saúde Metabólica
def calcular_ism(label_resultado, Glicemia_jejum, triglicerideos, HDL, pressao_sistolica, pressao_diastolica, cintura, sexo):
# Obtendo valores das entradas
glicemia = float(Glicemia_jejum.get())
triglicerideos = float(triglicerideos.get())
hdl = float(HDL.get())
sistolica = float(pressao_sistolica.get())
diastolica = float(pressao_diastolica.get())
cintura = float(cintura.get())
criterios_saudaveis = 0
# Avaliação dos critérios
if glicemia < 100:
criterios_saudaveis += 1
if triglicerideos < 150:
criterios_saudaveis += 1
if (sexo.get() == 'Feminino' and hdl > 50) or (sexo.get() == 'Masculino' and hdl > 40):
criterios_saudaveis += 1
if sistolica < 130 and diastolica < 85:
criterios_saudaveis += 1
if (sexo.get() == 'Masculino' and cintura < 102) or (sexo.get() == 'Feminino' and cintura < 88):
criterios_saudaveis += 1
# Determinando o resultado com base nos critérios
if criterios_saudaveis >= 3:
resultado = "Metabolicamente saudável"
else:
resultado = "Metabolicamente não saudável"
# Exibindo o resultado
label_resultado.config(text=resultado)
# Configuração da interface gráfica
root = tk.Tk()
root.geometry('500x500')
root.title('Índice de Saúde Metabólica')
root.configure(background='#09A3BA')
root.resizable(width=False, height=False)
# Variáveis para armazenar os valores das entradas
Glicemia_jejum = tk.StringVar()
triglicerideos = tk.StringVar()
HDL = tk.StringVar()
pressao_sistolica = tk.StringVar()
pressao_diastolica = tk.StringVar()
cintura = tk.StringVar()
sexo = tk.StringVar()
# Labels e campos de entrada
tk.Label(root, text="Glicemia em jejum", background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold")).place(relx=0.05, rely=0.05)
tk.Entry(root, textvariable=Glicemia_jejum).place(relx=0.55, rely=0.07, relwidth=0.35)
tk.Label(root, text="Triglicerídeos", background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold")).place(relx=0.05, rely=0.15)
tk.Entry(root, textvariable=triglicerideos).place(relx=0.55, rely=0.16, relwidth=0.35)
tk.Label(root, text="HDL (Lipoproteína de Alta Densidade)", background='#09A3BA', foreground="#FFFFFF", font=("Arial", 13, "bold")).place(relx=0.05, rely=0.25)
tk.Entry(root, textvariable=HDL).place(relx=0.65, rely=0.26, relwidth=0.3)
tk.Label(root, text="Pressão Sistólica", background='#09A3BA', foreground="#FFFFFF", font=("Arial", 15, "bold")).place(relx=0.05, rely=0.35)
tk.Entry(root, textvariable=pressao_sistolica).place(relx=0.65, rely=0.36, relwidth=0.3)
tk.Label(root, text="Pressão Diastólica", background='#09A3BA', foreground="#FFFFFF", font=("Arial", 15, "bold")).place(relx=0.05, rely=0.45)
tk.Entry(root, textvariable=pressao_diastolica).place(relx=0.65, rely=0.46, relwidth=0.3)
tk.Label(root, text="Circunferência da Cintura", background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold")).place(relx=0.05, rely=0.55)
tk.Entry(root, textvariable=cintura).place(relx=0.65, rely=0.56, relwidth=0.3)
# Dropdown para selecionar o sexo
dropDownList = ["Feminino", "Masculino"]
sexo.set(dropDownList[0])
tk.OptionMenu(root, sexo, *dropDownList).place(relx=0.35, rely=0.65, relwidth=0.35)
# Label para exibir o resultado
result_label = tk.Label(root, background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
result_label.place(relx=0.5, rely=0.85, anchor="center")
# Botão para calcular o ISM
calcular = partial(calcular_ism, result_label, Glicemia_jejum, triglicerideos, HDL, pressao_sistolica, pressao_diastolica, cintura, sexo)
tk.Button(root, text="Calcular ISM", command=calcular, background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold")).place(relx=0.35, rely=0.75, relwidth=0.35)
root.mainloop()