Ho un dispositivo di scorrimento e voglio chiamare una funzione specifica solo quando l'interazione è completa. L'idea è di chiamare una funzione dopo 500 ms (e non prima). Se il cursore continua a muoversi, la chiamata viene annullata. In altre parole, se il cursore "riposa" per più di 500 ms, la funzione è chiamata.Come posso chiamare una funzione con ritardo in python?
Grazie
Aggiornamento
#slider
def updateValue(self):
#self._job = None
#self.preview.updateContourValue(float(self.slider.get()))
print "updated value"
timer = Timer(5.0, updateValue)
def sliderCallback(self):
timer.cancel()
timer.start()
Quando si interagisce con una libreria GUI (che è come appare), probabilmente non si desidera utilizzare un thread. Usa timer per finestre. Non verranno eseguiti in una discussione in modo che non presentino problemi di threading; al contrario, vengono eseguiti in un punto predefinito a seconda del sistema. Questi sono diversi in diverse librerie GUI, ma sono una caratteristica standard. Ad esempio, in Win32 è "SetTimer()" e il messaggio WM_TIMER. –
@aaronasterling Viene visualizzato il seguente messaggio di errore: raise RuntimeError ("thread already started") (Ho aggiornato la domanda con il mio codice) – aneuryzm
@Glenn Grazie per averlo indicato. La metti come risposta in modo che possa essere accettata? Lascerò questa risposta come una lezione di oggetti. – aaronasterling