Qt透明标签并不总是更新其背景

时间:2015-05-09 15:25:04

标签: qt background transparent libvlc qlabel

我有三个主要小部件的子窗口小部件,它们的目的是播放视频文件(它们的大小和位置是相同的,我的意思是它们相互重叠,一次显示其中一个而隐藏其他部分)< / p>

我还有一个透明背景的Qlabel,我也是作为主要小部件的孩子创建的。我提出了这个标签,以便一直显示3个视频播放器小部件。 Qlabel的代码部分如下:

labelCamName = new QLabel(this);
labelCamName->resize(300,50);
labelCamName->move(110,0);

labelCamName->setStyleSheet("background-color: rgba(0,0,0,0%);color: rgba(150, 30, 30, 90%)");

labelCamName->setText("blabla");
labelCamName->raise();
labelCamName->show();

当标签叠加的第一个视频播放器小部件更新自身(播放视频)时,它可以正常工作但是当它改变小部件播放视频并显示另一个要播放的小部件(不播放)时一个固定的黑色框架,标签的背景显示第一个视频播放器小部件的最后一帧。它并没有假装它是带有透明背景的标签,如下面的屏幕截图所示:

first video Widget

second video player widget

为什么我面临这个问题以及如何使标签始终透明的任何建议?

提前致谢。非常感激。

1 个答案:

答案 0 :(得分:1)

将这些属性和标志添加到所需的Qlabel解决了我的问题。

labelCamName->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
labelCamName->setAttribute(Qt::WA_TranslucentBackground);