New class KWidgetBlendAnimation

Matthias Kretz kretz at
Thu Jan 31 20:54:18 GMT 2008

On Thursday 31 January 2008, Frerich Raabe wrote:
> Hi Matthias,
> Matthias Kretz schrieb:
> > while playing with possible UI effects I think I found a rather useful
> > one: Fade UI changes.
> [..]
> > The class is attached. Please comment on the naming, usefulness, dox and
> > whether we want to have it in kdeui for 4.1. (I want to use it in my
> > Phonon KCM unless I can be convinced that there's a better UI hint than
> > this animation).
> I didn't build your class but I just looked at the code a bit and wondered:
> Why do you grab a pixmap of the to-be-changed-widget in the constructor
> (and then install an event filter on the widget so that you get all
> paint events so you can update your pixmap)?
> Isn't it possible to just grab a pixmap within start()? Hmm, you'd need
> to show something until start() is called. Maybe you could hide()
> yourself, or make yourself transparent, or resize to 0x0 pixels or so?

I tried many things but so far this is the only way to reliably get a pixmap 
of the updated widget. Calling grabWidget in start() gives the old pixmap, 
calling grabWidget the first time paintEvent is called also gives the old 

I did not try to hide the animation widget as I don't want to have any 
flicker. The widget that gets grabbed may not draw its updated version on 
screen until the animation is over.

QPainter::setRedirected is pretty useless, too. It would be so easy to just 
redirect all paints of the original widget into the pixmap. But that doesn't 
work at all.

Matthias Kretz (Germany)                            <><
MatthiasKretz at, kretz at,
Matthias.Kretz at
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <>

More information about the kde-core-devel mailing list