QLabel/QPixmap drawing artifact with Qt 5.3 on DirectFB
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.
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 ?