<DIV>Hi,</DIV>
<DIV>I spent lots of time tracing execution with the debuger, and I didn't find a place in *win.cpp code which seems to be responsible. The point of my interest is now qbutton.cpp, in paintEvent function (line 880) :</DIV>
<DIV>/*!<BR> Handles paint events for buttons. Small and typically complex<BR> buttons are painted double-buffered to reduce flicker. The<BR> actually drawing is done in the virtual functions drawButton() and<BR> drawButtonLabel().</DIV>
<DIV> \sa drawButton(), drawButtonLabel()<BR>*/<BR>void QButton::paintEvent( QPaintEvent *)<BR>{<BR>#ifdef Q_WS_WIN<BR> QPainter p( this );<BR> drawButton (&p);<BR>#else<BR> QSharedDoubleBuffer buffer( this );<BR> drawButton( buffer.painter() );<BR>#endif <BR>}</DIV>
<DIV> </DIV>
<DIV>I tried to change the #ifdef in order to use the double buffering as the comments suggest, and... it works! In fact, clearing the QPainter is missing, the following code works too:</DIV>
<DIV> </DIV>
<DIV>#ifdef Q_WS_WIN<BR> QPainter p( this );<BR> p.eraseRect( this->rect() ); <- added<BR> drawButton (&p);<BR>#else<BR></DIV>
<DIV>So I looked in qbutton.cpp from qt-x11-free-3.3.3 and found this:</DIV>
<DIV> </DIV>
<DIV>void QButton::paintEvent( QPaintEvent *)<BR>{<BR> QSharedDoubleBuffer buffer( this );<BR> drawButton( buffer.painter() );<BR>}<BR></DIV>
<DIV>So I am wondering where does this #ifdef Q_WS_WIN comes from ? What do you think about using the double buffer which is what is used in last Qt X11 release ?</DIV>
<DIV> </DIV>
<DIV>Regards.</DIV><BR><BR><DIV>
<DIV>
<DIV>Aurelien REGAT-BARREL <BR></DIV></DIV></DIV><p>
                <hr size=1>
Découvrez le nouveau Yahoo! Mail : <font color="red">250 Mo d'espace</font> de stockage pour vos mails !<br><a href="http://fr.rd.yahoo.com/mail/taglines/*http://fr.rd.yahoo.com/evt=25917/*http://fr.rd.yahoo.com/mail_fr/mail_campaigns/splash/taglines_250/default/*http://fr.promotions.yahoo.com/mail/creer28.html">Créez votre Yahoo! Mail</a>