[Kde-devel-es] Una duda sobre QPainter

Miguel Lobo kde-devel-es@mail.kde.org
Sat, 28 Dec 2002 14:24:38 +0100


>  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?.

¿Seguro que ahora haces todas las llamadas a los métodos de QPainter 
desde tu paintEvent (o métodos llamados desde tu paintEvent)?  Si es 
así, no sé cuál puede ser el motivo de tus problemas, especialmente 
del segundo.

El primer problema puede ser uno que yo también tuve, y es que 
contrariamente a lo que yo esperaba parece que al llamar a repaint en 
un Widget *no* se llama automáticamente a repaint en los Widget 
hijos.  Es decir, que tú tienes que llamar a repaint manualmente en 
cada uno de los Widgets que quieras actualizar.  (Lo que yo hice, 
aprovechando que repaint es un slot, fue crear una señal en mi Widget 
padre y conectar el slot repaint de cada Widget hijo a esa señal.  
Así, al emitir la señal se repintaban todos los Widget hijos.  No sé 
si sería la solución adecuada, pero bueno).

--
Miguel