from tkinter import *
from tkinter import messagebox as mb
class Quiz:
def __init__(self):
self.perguntas = [
"1. Você tem dificuldade em prestar atenção a detalhes, "
"cometendo erros por descuido no trabalho ou em outras atividades?",
"2. Você acha difícil manter a atenção em tarefas ou atividades de lazer?",
"3. Você parece não escutar quando alguém fala diretamente com você?",
"4. Você tem dificuldade em seguir instruções e "
"concluir tarefas ou trabalhos?",
"5. Você tem dificuldade em organizar tarefas e atividades?",
"6. Você evita, não gosta ou reluta em se envolver em tarefas "
"que exigem esforço mental prolongado?",
"7. Você perde coisas necessárias para tarefas e atividades?",
"8. Você se distrai facilmente por estímulos externos?",
"9. Você é esquecido em atividades diárias?",
"10. Você frequentemente mexe com as mãos ou os pés ou se remexe na cadeira?",
"11. Você se levanta em situações onde se espera que permaneça sentado?",
"12. Você corre ou sobe em lugares inadequados?",
"13. Você tem dificuldade em brincar ou se envolver "
"silenciosamente em atividades de lazer?",
"14. Você se sente 'a mil' ou frequentemente 'em movimento'?",
"15. Você fala excessivamente?",
"16. Você responde perguntas antes que elas tenham sido completadas?",
"17. Você tem dificuldade em esperar a sua vez?",
"18. Você interrompe ou se intromete em conversas ou jogos dos outros?"
]
self.opcoes_resposta = [
["1- Nunca", "2- Raramente", "3-Às vezes", "4-Frequentemente", "5-Muito frequentemente"]
] * len(self.perguntas) # Reutiliza as mesmas opções para todas as perguntas
self.q_no = 0
self.total_score = 0
self.root = Tk()
self.root.geometry("800x450")
self.root.title("Teste de TDA")
self.display_title()
self.display_question()
self.opt_selected = IntVar()
self.opts = self.radio_buttons()
self.display_options()
self.buttons()
self.root.mainloop()
def display_result(self):
if self.total_score <= 36:
result = "É improvável que você tenha TDA com base neste teste.\n" \
" No entanto, se você ainda tiver preocupações,\n" \
" consulte um profissional de saúde."
elif 37 <= self.total_score <= 72:
result = "Há alguns sintomas que podem indicar TDA.\n" \
" Considere procurar uma avaliação profissional."
else:
result = "Os sintomas indicam uma alta probabilidade de TDA. \n" \
"É recomendável procurar um profissional de saúde para uma avaliação completa."
mb.showinfo("Resultado", result + "\n\nLembre-se de que este teste não substitui uma avaliação profissional.\n"
" Para um diagnóstico completo, consulte um médico ou psicólogo especializado.")
def next_btn(self):
# Calcula a pontuação da resposta selecionada
self.total_score += self.opt_selected.get()
self.q_no += 1
if self.q_no == len(self.perguntas):
self.display_result()
self.q_no = 0
self.total_score = 0
self.display_question()
self.display_options()
else:
self.display_question()
self.display_options()
def buttons(self):
next_button = Button(self.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(self.root, text="Sair", command=self.root.destroy,
width=5, bg="black", fg="white", font=("ariel", 16, "bold"))
quit_button.place(x=700, y=50)
def display_options(self):
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 + 1
val += 1
def display_question(self):
q_no = Label(self.root, text=self.perguntas[self.q_no], width=60, wraplength=700,
font=('ariel', 16, 'bold'), anchor='w', justify='left')
q_no.place(x=70, y=100)
def display_title(self):
title = Label(self.root, text="Teste de TDA",
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
while len(q_list) < 5: # Criar 5 botões de rádio
radio_btn = Radiobutton(self.root, text=" ", variable=self.opt_selected,
value=len(q_list) + 1, font=("ariel", 14))
q_list.append(radio_btn)
radio_btn.place(x=100, y=y_pos)
y_pos += 40
return q_list
quiz = Quiz()