【问题标题】:Can not overlay a transparent Qlabel on a QWidget that LibVLC uses无法在 LibVLC 使用的 QWidget 上覆盖透明 Qlabel
【发布时间】:2015-05-09 23:15:41
【问题描述】:

我有一个问题想问 LibVLC 用户,我整天都在苦苦挣扎,但还没有找到解决方案,所以想向您寻求帮助。

我有一个使用 LibVLC 播放视频、视频流的 Qt 应用程序。您可能知道,LibVLC 使用 Qt 小部件通过仅获取 Qwidget 的 WinID 来渲染视频帧并自行处理其余部分。我有一个 Qwidget 来使用 LibVLC 渲染视频,我想在这个小部件上覆盖一个透明的 Qlabel,但是当小部件开始显示视频时,标签不能是透明的,并且与它在视频开始播放。

这对我来说是一个 LibVLC 问题,我确信有解决方案,但到目前为止在网上找不到解决方法。

任何建议为什么会发生这种情况以及如何避免?

提前致谢。

【问题讨论】:

  • 我的回答here能解决你的问题吗?
  • 另见此处github.com/vlc-qt/vlc-qt/issues/33(您使用的是这个吗?)
  • @user2014561 我明天试一试并通知你,谢谢。
  • @FrankOsterfeld 是的,我面临同样的问题。那么这是不可能的吗?我们需要实现自己的绘图吗?
  • @user2014561 谢谢,您的示例的 2 行解决了我的问题,正如我在自己的回答中提到的那样。

标签: qt transparency qwidget libvlc qlabel


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2011-11-27
    • 2018-06-10
    • 2012-04-14
    • 2011-05-24
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多