Gstreamer上的透明QWidget叠加-视频

时间:2018-12-14 21:08:39

标签: qt overlay gstreamer gstreamer-1.0

我正在使用gstreamer-1.0,并将视频流覆盖在Qt中的QVideoWidget上。我想添加透明标签以在视频上显示。问题是,当我将标签添加到小部件的layout中时,我会在上渲染视频,并继续不断更新标签: -出现,但其背景是在其上呈现视频的窗口的背景。我的意思是该视频不再在标签的背景中呈现。 (这是标签更新速度快于视频帧速率的情况) -label不会出现,而我所拥有的只是视频(如果标签更新速率小于帧速率)

我尝试将透明小部件添加到视频布局并将标签添加到新窗口,但这也失败了。

这是我的代码

//  videoWindow                  //this is the window on which video is rendered
layTimer=new QGridLayout();  
dummyWidget=new QWidget();
timerLabel=new QLabel(dummyWidget);
videoWindow->setLayout(layTimer);
dummyWidget->setAttribute(Qt::WA_TranslucentBackground);
dummyWidget->setStyleSheet("background:transparent;");
timerLabel()->setStyleSheet("background:transparent;");
timerLabel()->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint );
dummyWidget->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint );
timerLabel()->setAttribute(Qt::WA_TranslucentBackground);
layTimer->addWidget(dummyWidget);

我该如何解决?如何仅在视频上显示标签的文本?

0 个答案:

没有答案