Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Transparency of mainwindow using EGLFS
VincentB last edited by
I'm currentlty trying to developp an application that uses two framebuffer of my imx6 based board. The first one is used to display a gstreamer video while the second will be use to add some action buttons (stop, play for example).
I'm facing a problem that is :
When I launch the gstreamer on /dev/fb0 (background) and then launch the qt application on /dev/fb1 (foreground) I would like to set a region of the Qt application (bases on a MainWindow designed with QtDesigner) transparency. But I'm not able to set it work. I try with :
w.setAttribute(Qt::WA_TranslucentBackground); w.setStyleSheet("background:transparent;"); QRegion maskedRegion(0, 0, 1280, 800); w.setMask(maskedRegion);
But still not work, there is always a default transparency ...
I suspect that the framebuffers have already their own alpha layer but I don't know how to progress...
MAnand last edited by
I am also facing the same issue and came across to your post.
I thought to check with you whether you got some solution for this.
In my current application also I am also using two Framebuffer, fb0 for drawing waveform via directly updating the pixel (this is not a Qt Application) and fb1 for Qt Application.
Expected behavior : When any Qt Window or dialog is active then overlapped area show not show the fb0 content it should be only Qt application.
Actual behavior : even if my Qt dialog is active the overlapped area also shows the drawing content.
Any kind of pointer/info will be really a great help.
Also if you know how to solve this with using single buffer only.
KillerSmath last edited by
These configurations works to me
setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground); setStyleSheet("background:transparent;");