[Kde-devel-es] Una duda sobre QPainter

Michael kde-devel-es@mail.kde.org
Sat, 28 Dec 2002 11:39:03 +0100


Hi,

>  Efectivamente el problema era que no usaba un método paintEvent en mi 
> aplicación. Ahora que lo he incluido ya funciona. O bueno..., medio funciona, 
> porque si trato de actualizar los gráficos se quedan los antiguos porque no 
> consigo borrarlos. Emplo repaint(true); y no va y tampoco funciona empleando 
> erase(); Debe ser algo evidente que estoy obviando. Otro error que tengo es 
> que si coloco una ventana encima de mi aplicación pierdo los gráficos al 
> retirarla para dejar mi aplicación en el frente. Es decir es como si los 
> trazos que pinto no fueron persitentes en ese caso (...y demasiado 
> persistentes en el otro).  Estoy perdido ¿a alguien se le ocurre alguna pista 
> de donde puedo mirar?.

Ese es el funcionamiento normal de cualquier sistema de
ventanas, lo que dibujes nunca es persistente, de ahi que todo
lo que se pinte tenga que estar en el paintevent, el paintevent es llamado
por el sistema cuando se necesite repintar las ventanas, y esto pasara muy a menudo,
si pones algo delante de tu programa de modo que lo tape y despues lo retiras
sera necesario repintar la ventana de tu programa, y el sistema llamara
a tu metodo paint event para que redibujes su contenido.

Si quieres que los cambios se mantengan crea un objeto QPixmap y pinta
en el lo que quieras, despues en el paint event redibuja ese QPixmap, o
simplemente ponlo como fondo de la ventana.
De todas formas este sistema no es bueno: guardar las imagenes de
todas las ventanas ocupa muchisima memoria, de ahi que los sistema
de ventanas no lo hagan y simplemente notifiquen a las aplicaciones
cuando es necesario redibujar.

Salud2 !!!





Salud2 !!!