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.
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.