from tkinter import *
from tkinter import messagebox as mb
class Quiz:
def __init__(self):
self.perguntas = [
"Q1. Sentiu-se nervoso, ansioso ou no limite?",
"Q2. Não conseguiu parar ou controlar a preocupação?",
"Q3. Preocupou-se demais com coisas diferentes?",
"Q4. Teve dificuldade para relaxar?",
"Q5. Sentiu-se tão inquieto que era difícil ficar parado?",
"Q6. Ficou facilmente irritado ou nervoso?",
"Q7. Sentiu medo como se algo muito ruim pudesse acontecer?",
]
self.opcoes_resposta = [
["0 - Nunca", "1 - Poucos dias", "2 - Mais da metade dos dias", "3 - Quase todos os dias"],
["0 - Nunca", "1 - Poucos dias", "2 - Mais da metade dos dias", "3 - Quase todos os dias"],
["0 - Nunca", "1 - Poucos dias", "2 - Mais da metade dos dias", "3 - Quase todos os dias"],
["0 - Nunca", "1 - Poucos dias", "2 - Mais da metade dos dias", "3 - Quase todos os dias"],
["0 - Nunca", "1 - Poucos dias", "2 - Mais da metade dos dias", "3 - Quase todos os dias"],
["0 - Nunca", "1 - Poucos dias", "2 - Mais da metade dos dias", "3 - Quase todos os dias"],
["0 - Nunca", "1 - Poucos dias", "2 - Mais da metade dos dias", "3 - Quase todos os dias"],
]
self.q_no = 0
self.total = 0
self.opt_selected = IntVar()
self.data_size = len(self.perguntas)
# Configurar a janela principal
self.display_title()
self.display_question()
self.opts = self.radio_buttons()
self.display_options()
self.buttons()
def display_result(self):
if self.total <= 4:
resultado = "Pouca ou nenhuma ansiedade."
elif 5 <= self.total <= 9:
resultado = "Ansiedade leve."
elif 10 <= self.total <= 14:
resultado = "Ansiedade moderada."
else:
resultado = "Ansiedade grave."
mb.showinfo("Resultado", f"Sua pontuação total foi {self.total}.\n\n{resultado}")
root.destroy()
def check_ans(self):
self.total += self.opt_selected.get()
def next_btn(self):
self.check_ans()
self.q_no += 1
if self.q_no == self.data_size:
self.display_result()
else:
self.display_question()
self.display_options()
def buttons(self):
"""Cria os botões de navegação."""
next_button = Button(root, text="Próxima", command=self.next_btn,
width=10, bg="blue", fg="white", font=("ariel", 16, "bold"))
next_button.place(x=350, y=380)
quit_button = Button(root, text="Sair", command=root.destroy,
width=5, bg="black", fg="white", font=("ariel", 16, " bold"))
quit_button.place(x=700, y=50)
def display_options(self):
"""Exibe as opções de resposta para a pergunta atual."""
val = 0
self.opt_selected.set(0)
for option in self.opcoes_resposta[self.q_no]:
self.opts[val]['text'] = option
self.opts[val]['value'] = val
val += 1
def display_question(self):
"""Exibe a pergunta atual."""
q_no = Label(root, text=self.perguntas[self.q_no], width=60,
font=('ariel', 16, 'bold'), anchor='w')
q_no.place(x=70, y=100)
def display_title(self):
"""Exibe o título do quiz."""
title = Label(root, text="Teste de Ansiedade",
width=50, bg="green", fg="white", font=("ariel", 20, "bold"))
title.place(x=0, y=2)
def radio_buttons(self):
q_list = []
y_pos = 150
for _ in range(4):
radio_btn = Radiobutton(root, text="", variable=self.opt_selected,
value=0, font=("ariel", 14))
q_list.append(radio_btn)
radio_btn.place(x=100, y=y_pos)
y_pos += 40
return q_list
# Configuração da janela principal
root = Tk()
root.geometry("800x450")
root.title("Teste de Ansiedade")
quiz = Quiz()
root.mainloop()
Comentários
Enviar um comentário