Skip to content
This repository has been archived by the owner on May 14, 2023. It is now read-only.

Commit

Permalink
Implementação de threads e tratamento de erros
Browse files Browse the repository at this point in the history
  • Loading branch information
LelePG committed Jul 1, 2021
1 parent 8111832 commit 3d04793
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 31 deletions.
19 changes: 0 additions & 19 deletions Temporizador.py

This file was deleted.

13 changes: 4 additions & 9 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
from Pymagochi import Pymagochi
from Temporizador import Temporizador
from manipulador_interface import altera_valores as av
from manipulador_interface import cria_threads as ct
from manipulador_interface import cria_elementos as ce
from tkinter import * # importa a biblioteca gráfica
from tkinter import messagebox
from random import randint
import time

# constantes
TEMPO_ATUALIZAR_INTERFACE = 0.25
TEMPO_DECREMENTAR_STATUS = 0.5
Expand All @@ -28,7 +27,7 @@

status = { ## Map auxiliar para a criação da interface com os valores corretos.
0:["Comida", "Alimentar", av.aumentar_comida, pymagochi.comida],
1:["Bebida", "Beber", av.aumentar_bebida, pymagochi.bebida],
1:["Bebida", "Dar água", av.aumentar_bebida, pymagochi.bebida],
2:["Felicidade", "Brincar", av.aumentar_felicidade, pymagochi.felicidade],
3:["Energia", "Dormir", av.aumentar_energia, pymagochi.energia],
4:["Banheiro", "Banheiro", av.aumentar_banheiro,pymagochi.banheiro],
Expand Down Expand Up @@ -72,20 +71,16 @@ def decrementar_status(): # eu queria utilizar um switch, mas não tem em python
av.diminuir_banheiro(pymagochi)
else:
print("Problema encontrado")

monitorar_interface()

#Threads
thread_atualiza_interface = ct.minhaThread(TEMPO_ATUALIZAR_INTERFACE, atualizar_interface)
thread_decrementa_status = ct.minhaThread(TEMPO_DECREMENTAR_STATUS, decrementar_status)

for i in range (len(status)): # cria a interface
label_item = ce.criar_label(frame_principal,status[i][0],0,i)
btn_item = ce.criar_btn(frame_principal,pymagochi,status[i][1], status[i][2], 2,i)


thread_atualiza_interface.roda_funcao()
thread_decrementa_status.roda_funcao()
ct.minhaThread(TEMPO_ATUALIZAR_INTERFACE, atualizar_interface).roda_funcao()
ct.minhaThread(TEMPO_DECREMENTAR_STATUS, decrementar_status).roda_funcao()

janela.mainloop()#inicia a janela

Expand Down
11 changes: 8 additions & 3 deletions manipulador_interface/cria_threads.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import threading
from threading import Timer
import os

class minhaThread(threading.Thread):
def __init__(self, tempo_atualizacao, funcao_callback):
Expand All @@ -8,6 +9,10 @@ def __init__(self, tempo_atualizacao, funcao_callback):
self.funcao_callback = funcao_callback

def roda_funcao(self): # Para selecionar e rodar a função, é assim mesmo
self.funcao_callback() #declara a função
self.thread = Timer(self.tempo_atualizacao, self.roda_funcao) #cria a thread que vai rodar a função
self.thread.start() #inicia a execução
try:
self.funcao_callback() #declara a função
self.thread = Timer(self.tempo_atualizacao, self.roda_funcao) #cria a thread que vai rodar a função
self.thread.start() #inicia a execução
except:
self.thread.cancel()
os._exit(1) #Finaliza o programa, de uma forma meio forçada, mas finaliza.

0 comments on commit 3d04793

Please sign in to comment.