from tkinter import *
from tkinter import messagebox
root = Tk()
root.geometry("600x600")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Escala de Coma de Glasgow")
# Título
titulo = Label(text="Escala de Coma de Glasgow", font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05)
# Instruções
instrucoes = Label(root, text="Insira os valores para calcular a pontuação", font=("Arial", 14, "bold"), bg="#103030", fg="#49e3e3")
instrucoes.place(relx=0.05, rely=0.2)
# Resposta Ocular
ocular_label = Label(root, text="Resposta Ocular (1-4):", font=("Arial", 14, "bold"), bg="#103030", fg="#49e3e3")
ocular_label.place(relx=0.05, rely=0.3)
Resposta_Ocular = StringVar()
Resposta_Ocular_entrada = Entry(textvariable=Resposta_Ocular, font=("Arial", "12", "bold"), bg="white", fg="blue", justify='center')
Resposta_Ocular_entrada.place(relx=0.41, rely=0.31, relwidth=0.2)
# Resposta Motora
Resposta_Motora_label = Label(root, text="Resposta Motora (1-6):", font=("Arial", 14, "bold"), bg="#103030", fg="#49e3e3")
Resposta_Motora_label.place(relx=0.05, rely=0.41)
Resposta_Motora = StringVar()
Resposta_Motora_entrada = Entry(textvariable=Resposta_Motora, font=("Arial", "12", "bold"), bg="white", fg="blue", justify='center')
Resposta_Motora_entrada.place(relx=0.41, rely=0.41, relwidth=0.2)
#Resposta verbal (V):
Resposta_verbal_label = Label(root, text="Resposta verbal (1-5):", font=("Arial", 14, "bold"), bg="#103030", fg="#49e3e3")
Resposta_verbal_label.place(relx=0.05, rely=0.51)
Resposta_verbal = StringVar()
Resposta_verbal_entrada = Entry(textvariable=Resposta_verbal, font=("Arial", "12", "bold"), bg="white", fg="blue", justify='center')
Resposta_verbal_entrada.place(relx=0.41, rely=0.51, relwidth=0.2)
def info_ocular():
messagebox.showinfo("Informações sobre Resposta Ocular",
"4 = Abertura espontânea dos olhos\n"
"3 = Abertura dos olhos em resposta a comando verbal\n"
"2 = Abertura dos olhos em resposta à dor\n"
"1 = Sem abertura dos olhos")
def info_motora():
messagebox.showinfo("Informações sobre Resposta Motora",
"6 = Obedece a comandos\n"
"5 = Localiza a dor\n"
"4 = Retira-se da dor\n"
"3 = Flexão anormal\n"
"2 = Extensão anormal\n"
"1 = Sem resposta motora")
def info_verbal():
messagebox.showinfo("Informações sobre Resposta Verbal",
"5 = Orientada (responde com clareza e corretamente).\n"
"4 = Confusa (fala, mas está desorientada ou confusa).\n"
"3 = Palavras inadequadas (fala desconexa, sem sentido).\n"
"2 = Sons incompreensíveis (gemidos, murmúrios).\n"
"1 = Nenhuma resposta")
but1 = Button(text="Informação", bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'), command=info_ocular)
but1.place(relx=0.7, rely=0.3, relwidth=0.2, relheight=0.05)
but2 = Button(text="Informação", bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'), command=info_motora)
but2.place(relx=0.7, rely=0.41, relwidth=0.2, relheight=0.05)
but3 = Button(text="Informação", bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'), command=info_verbal)
but3.place(relx=0.7, rely=0.51, relwidth=0.2, relheight=0.05)
def limpar():
Resposta_Motora_entrada.delete(0, END)
Resposta_Ocular_entrada.delete(0, END)
Resposta_verbal_entrada.delete(0, END)
resultado_texto.config(text="")
def app():
try:
Ocular = int(Resposta_Ocular.get())
Motora = int(Resposta_Motora.get())
Verbal = int(Resposta_verbal.get())
if Ocular < 1 or Ocular > 4 or Verbal < 1 or Verbal > 5 or Motora < 1 or Motora > 6:
resultado_texto.config(text="Valores inválidos! Confira as pontuações permitidas:\n"
"Resposta Ocular: 1-4\n"
"Resposta Motora: 1-6\n"
"Resposta Verbal: 1-5")
else:
pontuacao_total = Ocular + Verbal + Motora
# Melhorando a classificação
if pontuacao_total <= 8:
interpretacao = "Coma grave. Função cerebral gravemente comprometida. \nNecessita de cuidados intensivos."
elif pontuacao_total <= 12:
interpretacao = "Coma moderado. \nComprometimento neurológico significativo, mas menos severo."
elif pontuacao_total <= 14:
interpretacao = "Leve alteração do estado de consciência. \nO paciente pode estar confuso ou desorientado."
else:
interpretacao = "Estado normal ou próximo do normal."
resultado_texto.config(text=f"Pontuação Total: {pontuacao_total}\nEstado: {interpretacao}")
except ValueError:
resultado_texto.config(text="Por favor, insira valores numéricos válidos!")
Calcular = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
Calcular.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.mainloop()