[Kde-devel-es] setBackgroundPixmap

l0b0 l0b0 at erraticmind.com
Tue Jul 15 10:59:45 CEST 2003


> > Estoy usando la función setBackgroundPixmap (sé que ya está obsoleta, pero
> > mi versión es anterior a Qt3).
> > El caso es que tengo una función paintevent donde uso setBackgroundPixmap y
> > me he dado cuenta que esta función llama automáticamente a un update() y el
> > paintevent entra en un bucle. Esto, cuando sólo uso una instancia de ese
> > Widget no me da ningún problema, pero cuando hago varias instancias de ese
> > Widget, me es imposible poder acceder a los otros componentes del layout en
> > el que se encuentran ubicadas las instancias.
>
>Si el método setBackgroundPixmap ejecuta automáticamente un update(), y este
>método lo que hace es ejecutar el paintevent, entonces el método
>setBackgroundPixmap no puede estar dentro de paintevent, porque el widget se
>anda repintando eternamente... Aunque no estoy seguro de haberte entendido
>del todo... ;-)

Mi intención era que no "parpadease" la imágen al actualizarse. Cuando se 
llama al paintevent por defecto el widget toma el color del fondo y luego 
se repinta. Si tarda un tiempo en hacer las operaciones para pintar, se 
nota un desagradable parpadeo. Por eso, yo al final del paintevent asignaba 
la imágen mostrada al Background con setBackgroundPixmap, ya que, de ese 
modo, al volver a llamar al Paintevent, no se borraba el widget con el 
color de fondo sino con la imágen en cuestión. Bien, he descubierto que 
todo esto es una tontería. Soy nuevo en esto y en ocasiones busco 
soluciones que, si bien funcionan (en cierto modo :P) no son lo mejor.

Finalmente solucioné el problema.

Bastaba con añadir "SetBackgroundMode(NoBackground)" al crear el Widget y 
de ese modo, te evitas el parpadeo porque no te borra la imágen anterior 
antes de repintar la nueva. Supongo que para muchos es básico y una 
chorrada, pero a mi me ha dado quebraderos de cabeza y seguro que puede 
ayudar a más de uno que necesite algo parecido.

Muchas Gracias.

Manuel. 



More information about the Kde-devel-es mailing list