from tkinter import *
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calculadora de Índice de Glicemia")
titulo = Label(text="Calculadora de Índice de Glicemia",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05)
var = StringVar()
radio_jejum = Radiobutton(root, text="Glicemia em Jejum", variable=var,
value="jejum", font=("Arial", "20", "bold"),
bg="#103030", fg="#49e3e3")
radio_jejum.place(relx=0.05, rely=0.25)
radio_pos_prandial = Radiobutton(root, text="Glicemia Pós-prandial",
variable=var, value="pos_prandial",
font=("Arial", "20", "bold"), bg="#103030", fg="#49e3e3")
radio_pos_prandial.place(relx=0.5, rely=0.25)
texto_sub1 = Label(text="Valor da glicemia (mg/dL):",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.45)
glicemia = StringVar()
glicemia_entrada = Entry(textvariable=glicemia,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
glicemia_entrada.place(relx=0.55, rely=0.46, relwidth=0.35)
glicemia_entrada.focus()
# Função de cálculo
def app():
try:
g = float(glicemia.get())
v = var.get()
if v == "jejum":
if g < 100:
mensagem = f"Classificação: Normal (Jejum)"
elif 100 <= g <= 125:
mensagem = f"Classificação: Pré-diabetes (Jejum)"
else: # g >= 126
mensagem = f"Classificação: Diabetes (Jejum)"
elif v == "pos_prandial":
if g < 140:
mensagem = f"Classificação: Normal (Pós-prandial)"
elif 140 <= g <= 199:
mensagem = f"Classificação: Alterado (Pós-prandial)"
else: # g >= 200
mensagem = f"Classificação: Diabetes (Pós-prandial)"
else:
mensagem = "Por favor, selecione um tipo de medição."
resultado_texto.config(text=mensagem)
except ValueError:
resultado_texto.config(text="Valor digitado inválido. Por favor, insira um número.")
# Função de limpar campos
def limpar():
glicemia_entrada.delete(0, END)
resultado_texto.config(text="")
# Lista de Radiobuttons para navegação
radiobuttons = [radio_jejum, radio_pos_prandial]
current_index = 0 # Índice do Radiobutton ativo
# Função para mover para cima
def mover_para_cima(event):
global current_index
current_index = (current_index - 1) % len(radiobuttons)
radiobuttons[current_index].focus_set()
# Função para mover para baixo
def mover_para_baixo(event):
global current_index
current_index = (current_index + 1) % len(radiobuttons)
radiobuttons[current_index].focus_set()
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.65, relwidth=0.25, relheight=0.1)
but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.65, relwidth=0.25, relheight=0.1)
but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.65, relwidth=0.25, relheight=0.1)
resultado_texto = Label(text="",
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15)
root.bind('<Up>', mover_para_cima)
root.bind('<Down>', mover_para_baixo)
root.bind('<Return>', lambda event: app())
root.mainloop()