Ho impostato il on_motion
per gestire EVT_MOTION
. Voglio la posizione del mouse per in modo interattivo generando un'immagine specifica di coordinate, ma WxPython ha un ritardo di ~ 400ms nella registrazione di eventi di movimento successivi. Il che rende l'interfaccia lenta.Perché il rilevamento del movimento WxPythons è così lento?
Perché lo EVT_MOTION
è così lento e come lo risolvo? L'ho provato in Ubuntu 11.10 e WinXP e i ritardi sono paragonabili?
Ho bisogno di tempi di risposta rapidi per selezionare una porzione da un'immagine come mostra l'immagine. Così com'è, i "cross-hair" seguono il mouse troppo lentamente.
Ecco il codice che ho provato EVT_MOTION
:
def on_motion(self, event):
"""mouse in motion"""
#pt = event.GetPosition()
self.mouseover_location = event.GetPosition()
self.t2 = time.time()
print "delay",self.t2 - self.t1
self.t1 = self.t2
delay 0.379776954651
delay 0.00115919113159
delay 0.421130895615
delay 0.416938066483
delay 0.376848936081
delay 0.387464046478
delay 0.40311384201
delay 0.392899036407
delay 0.385301113129
delay 0.422554969788
delay 0.355197906494
Potrebbe essere altri eventi che vengono gestiti in mezzo? forse qualche disegno costoso che sta accadendo forse – GP89
vorrei cross-post al gruppo Google wxPython. E pubblica anche un piccolo esempio eseguibile. –
Hai pensato di creare una discussione dedicata solo al rilevamento del mouse?Un ciclo cosntante di "dove si trova l'aggiornamento del trigger del mouse. Se il problema è EVT_MOTION questo lo risolverà. Se il problema è la velocità di disegno, dovresti essere in grado di vederlo anche tu. – acattle