Configuré on_motion
para manejar EVT_MOTION
. Quiero la ubicación del mouse para de forma interactiva generando una imagen específica de la coordenada, pero WxPython tiene un retraso de ~ 400ms al registrar sucesos de movimiento sucesivos. Lo que hace que la interfaz sea lenta.¿Por qué la detección de movimiento de WxPythons es tan lenta?
¿Por qué es tan lento EVT_MOTION
y cómo lo arreglo? Lo intenté en Ubuntu 11.10 y WinXP y los retrasos son comparables?
Necesito tiempos de respuesta rápidos para seleccionar una parte de una imagen como la que muestra la imagen. Tal como está, las "crucetas" siguen al mouse muy lentamente.
Este es el código que probé 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
¿Podría haber otros eventos que se están manejando en el medio? tal vez algún dibujo caro que está sucediendo tal vez – GP89
Me gustaría publicar de forma cruzada para el grupo de wxPython Google. Y publique un pequeño ejemplo ejecutable también. –
¿Ha considerado crear un hilo dedicado solo al rastreo del mouse?Un bucle contiguo de "¿dónde está el mouse ?, dispara la actualización, repite". Si el problema es EVT_MOTION, esto lo resolverá. Si el problema es la velocidad de dibujo, entonces debería poder ver eso también. – acattle