QT5/EGLFS QLabel still visible after hide()

  • I'm running Qt 5.3.2 on EGLFS, on an i.MX6 platform.

    I have a gstreamer application streaming video to /dev/fb0 and an overlaid Qt UI on /dev/fb1. Compositing and transparency work fine.

    There are several QLabels which I am using as icons by setting setStyleSheet("background:url(foo)"). That works fine, I can change the icon image at runtime, etc.

    I would like to hide the icons by calling the hide() function, but it isn't working. After I call hide(), isHidden() is true, and isVisible() is false, but the icon still appears on the overlay.

    I have tried various combinations of Window Attributes and stylesheet settings, but I simply can't get hide() to hide the icon. It's like that section of the framebuffer isn't being updated or something.

    Any ideas are appreciated.

  • I should add that if I change the image multiple times with setPixmap(), the previous pixmap remains behind the new one. For example, if I set the pixmap to a picture of the letter "A", then the letter "B", I can see the A behind the B. The documentation says "When the content is changed using any of these functions, any previous content is cleared," but that just doesn't seem to be happening.

  • Turns out that I had WA_TranslucentBackground set on the main window from working on a previous platform.

    Turning it off for the i.MX6 fixes QLabel behavior.

  • Hi,

    I am trying to play video using gstreamer in qt5 video widget example.
    If you have time can you please explain how to implement it, gstreamer video plays properly using gst-launch-1.0 command but when i try to play the video widget example from qt i get buffers dropped warning and the video is not running smoothly or it is delayed with breaks.

    I would also like to know how did u switch between different frame buffers at runtime, like you said gstreamer on fb0 and qt ui on fb1

    the board i am using is freescale imx6q board and the kernel is 3.10.17.
    i built kernel and qt5 with yocto project.

    Best Regards
    Sriraman Ravi