QLabel/QPixmap drawing artifact with Qt 5.3 on DirectFB



  • Hi All

    I am using Qt 5.3 with DirectFB as the QPA.

    When I attempt to display a QLabel with a pixmap in it I am seeing a drawing artifact on screen. DirectFB is set to backbuffer so I think I should not be seeing anything but the finished render on screen.

    I have never seen an artifact quite like this so I am not sure what I am looking at. I captured a video of the artifact and extracted a before, during, and after frame. Picture here

    The code to display it is pretty straightforward:

                m_indicatorLabel = new QLabel();
                // m_indicatorOSD is a widget that holds one or more icons in an QHBoxLayout
                m_indicatorLabel->setPixmap(m_indicatorOSD.grab());
                m_indicatorLabel->adjustSize();
                m_indicatorLabel->move(res.width() - m_indicatorOSD.width(), 0); // position top right
                m_indicatorLabel->activateWindow();
                m_indicatorLabel->raise();
                m_indicatorLabel->show();
    

    Has anyone seen something like this before? Is there a way I can force the pixmap to render before it appears on screen? I tried setting WA_DontShowOnScreen, showing the widget, then unsetting WA_DontShowOnScreen but that had no effect.

    Thanks
    AMK


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Following your comment in the code, why grab a widget rather that setting a pixmap based on the icon you mentioned there ?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.