El mié, 05-07-2006 a las 18:56 -0400, Eduardo Silva escribió: > Estimados, > > Estoy desarrollando una aplicacion con PyGTK y PyCairo, el problema es > el siguiente: > > tengo una mini aplicacion de ejemplo la cual posee un drawingarea y un > boton simple. Cuando es invocado el evento expose por primera vez > (cuando se despliega la aplicacion), dibujo en el drawingarea un > rectangulo azul de fondo y un Grid. Al presionar el boton estoy > llamando a una funcion mediante gobject.timeout_add(...) que cada > 500ms va dibujando trazos de una linea blanca en el drawingarea > infinitamente , manteniendo el eje Y e incrementando el eje X > correlativamente, es decir una linea recta. > > Cuando presiono el boton para comenzar a dibujar todo funciona > perfectamente, pero una vez que cambio de ventana o minimizo la del > programa. se invoca el evento expose por lo cual me veo obligado a > redibujar lo que tenia en el drawingarea, el problema esta en que la > funcion que me esta dibujando la linea a traves del timeout, no puede > seguir dibujando en el drawingarea (la funcion del timeout), es decir, > los metodos de cairo son llamados y ejecutados sin problemas, pero > nada aparece de forma visible.
Es justamente la diferencia entre un area de dibujo y un canvas. Los canvas, se procupan de eso por ti. Supongo que en tu caso, tendrias que manejarlo tu, por ejemplo dibujando en un buffer, y en el evento expose, capturar el area de pantalla que necesita ser redibujada, y dibujarla en base al buffer. suerte!
