Topic: conto alla rovescia  (Letto 1158 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline computador

  • python unicellularis
  • *
  • Post: 31
  • Punti reputazione: 0
    • Mostra profilo
conto alla rovescia
« il: Dicembre 15, 2008, 15:59 »

  Come faccio a recuperare la variazione dei secondi in modo da crearmi un conto alla rovescia oppure un timer in avanti ?

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: conto alla rovescia
« Risposta #1 il: Dicembre 15, 2008, 16:20 »
Ciao!

Studiati il modulo `time`.

Ciao!

Offline computador

  • python unicellularis
  • *
  • Post: 31
  • Punti reputazione: 0
    • Mostra profilo
Re: conto alla rovescia
« Risposta #2 il: Dicembre 16, 2008, 09:42 »
Ciao!

Studiati il modulo `time`.

Ciao!

 avevo già letto il modulo e credo di sapere come ricavare i secondi e farmi tutti conti necessari.
 il problema e che devo fare una specie di interrupt per aggiornare "l'orologio"

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: conto alla rovescia
« Risposta #3 il: Dicembre 16, 2008, 15:30 »
ma con interfaccia grafica o no?

non capisco, dai più informazioni ;)

Offline computador

  • python unicellularis
  • *
  • Post: 31
  • Punti reputazione: 0
    • Mostra profilo
Re: conto alla rovescia
« Risposta #4 il: Dicembre 17, 2008, 07:33 »
Citazione
ma con interfaccia grafica o no?
 
 Mi serve proprio l'interfaccia grafica non l'avevo messa in causa perché invece di usare print  mi basta semplicemente inserire il l'ora in una label.

 Ti spiego meglio sto facendo un'applicazione in GTK che ho quasi finito, ora devo inserire un conto alla rovescia in modo che l'utente possa vedere il tempo che sta trascorso e il tempo che ha a disposizione. Se sapesse ad esempio sapere come fare ad eseguire una funzione ogni secondo, il problema sarebbe risolto.

Offline THeK3nger

  • python erectus
  • ***
  • Post: 192
  • Punti reputazione: 0
  • Mad Scientist
    • Mostra profilo
    • DeviantCode
Re: conto alla rovescia
« Risposta #5 il: Dicembre 17, 2008, 08:56 »
Se mandi un thread che aggiorna l'orologio e poi va in sleep per x secondi e poi ricomincia?

Offline computador

  • python unicellularis
  • *
  • Post: 31
  • Punti reputazione: 0
    • Mostra profilo
Re: conto alla rovescia
« Risposta #6 il: Dicembre 17, 2008, 13:02 »
Se mandi un thread che aggiorna l'orologio e poi va in sleep per x secondi e poi ricomincia?

 Scusami per l'ignoranza ma non so come farlo

Offline TerabyteST

  • python neanderthalensis
  • ****
  • Post: 433
  • Punti reputazione: 0
  • Quindicenne
    • Mostra profilo
Re: conto alla rovescia
« Risposta #7 il: Dicembre 18, 2008, 23:29 »
No problemo. Sono nella stessa situazione. Help!!

Offline THeK3nger

  • python erectus
  • ***
  • Post: 192
  • Punti reputazione: 0
  • Mad Scientist
    • Mostra profilo
    • DeviantCode
Re: conto alla rovescia
« Risposta #8 il: Dicembre 19, 2008, 08:38 »
[hlpycode]
import thread
import time

...
#Questo è il codice che esegue il thread. In pratica esegue il corpo del while una volta ogni secondo
#fino a quando non setti la variabile "guardia" uguale a 1. Questo perchè altrimenti non terminerebbe mai!

def metodoperiodico(self) :
    while (guardia == 0) :
        #Qui metti le operazioni da eseguire.
        time.sleep(1)
    thread.exit_thread()

...
thread.start_new_thread(metodoperiodico, (None,)) ##Questo è il comando che lancia il thread.
...

[/hlpycode]

Si capisce?

Offline computador

  • python unicellularis
  • *
  • Post: 31
  • Punti reputazione: 0
    • Mostra profilo
Re: conto alla rovescia
« Risposta #9 il: Dicembre 19, 2008, 15:38 »

 Grazie
       Ho provato ma mi da un errore in esecuzione
       Unhandled exception in thread started by
       Error in sys.excepthook:

       Original exception was:


Codice di prova
import thread 
import time 

def metodoperiodico(self) : 
     while (guardia == 0) : 
         #Qui metti le operazioni da eseguire. 
         print "ok"
         time.sleep(1)
         guardia = 1
     thread.exit_thread() 
 
thread.start_new_thread(metodoperiodico, (None,)) ##Questo  il comando che lancia il thread.   


Offline Rev

  • python neanderthalensis
  • ****
  • Post: 386
  • Punti reputazione: 0
    • Mostra profilo
Re: conto alla rovescia
« Risposta #10 il: Dicembre 20, 2008, 04:06 »
non conosco i thread ma  quel codice li com'è non mi pare proprio che possa funzionare
da dove lo hai copiato?

metodoperiodico(self) ricorda un metodo di una classe
while (guardia == 0): .. guardia non è definita e le parentesi non servono

[hlpycode]
import thread
import time

...
#Questo è il codice che esegue il thread. In pratica esegue il corpo del while una volta ogni secondo
#fino a quando non setti la variabile "guardia" uguale a 1. Questo perchè altrimenti non terminerebbe mai!

def metodoperiodico(self) :
    while (guardia == 0) :
        #Qui metti le operazioni da eseguire.
        time.sleep(1)
    thread.exit_thread()

...
thread.start_new_thread(metodoperiodico, (None,)) ##Questo è il comando che lancia il thread.
...

[/hlpycode]

Si capisce?

Offline THeK3nger

  • python erectus
  • ***
  • Post: 192
  • Punti reputazione: 0
  • Mad Scientist
    • Mostra profilo
    • DeviantCode
Re: conto alla rovescia
« Risposta #11 il: Dicembre 22, 2008, 13:17 »
Il codice è preso da una cosa che avevo scritto e che funzionava. Onestamente il self l'avevo messo solo perché altrimenti mi dava errore sul numero di parametri. Sicuramente esiste una segnatura migliore... :\