[ Spam - HIGH ] Re: PyCairo y el evento expose



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!






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]