Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

RPereira93

Inserir no python temporizador

Mensagens Recomendadas

RPereira93    0
RPereira93

Olá pessoal,

Como faço no python para inserir um temporizador??

eu estou a fazer um jogo o Quem quer ser milionário e preciso de um temporizador para cada pergunta que seria de 30 segundos.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
godhoo    0
godhoo

Boa noite,

Sou um novo membro do forum e também um novo programador em python.

Eu já implementei esse código sugerido nesse site só que precisava de ter acesso ao valor de segundos que o temporizador tem para proceder a uma determinada acção numa classe que implementa uma interface gráfica.

Outra dúvida prende-se com o facto de não conseguir parar a thread com o comando c.cancel().

Alguém me pode ajudar?

Obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
bsccara    14
bsccara

Em Python não existe nenhum modo de terminar uma thread; o código dentro do 'run' é que tem de verificar um objecto qualquer para determinar se deve continuar ou sair do 'run'. Ao sair a thread termina.

O segundo exemplo da página indicada no post anterior mostra como implementar um timer que conta segundo a segundo (para trás mas será fácil fazê-lo contar para a frente).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
godhoo    0
godhoo

Obrigado pela dica de paragem da thread :)!

A minha outra questão está relacionada com:

- criar um objecto do tipo countdownexec dentro de outra classe (esta implementa uma interface gráfica) e conseguir extrair o valor que o timer possui para conseguir realizar uma determinada acção.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
bsccara    14
bsccara

Não te aconselho a 'coscuvilhar' no valor da contagem. Para responderes ao valor terás de fazer pooling nalgum lado, o que nega qualquer ganho que terias em usar threads. O que sugiro é passares um tuple para o timer com os vários valores de contagem em que queres que ele dispare, e quando isso acontecer o run chamaria uma ou várias rotinas para responderem ao evento.

Mesmo que queiras fazer um indicador de progresso deves fazer desta maneira, com um evento a disparar a cada intervalo de actualização da contagem e outro a disparar no fim do tempo (ou contando os eventos anteriores e parando a thread quando chegar).

Cuidado com o que fazes dentro dos eventos do timer; não te esqueças que qualquer objecto ou variável (incluíndo objectos do IU) que seja usado por várias threads (incluíndo a inicial do programa) tem de ter o acesso a ele serializado de algum modo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade