在视频图像上显示背景透明而子控件不透明的控件

huozi19820418 2014-06-10 09:26:47
我现在的需求是要用摄像头来校准,所以下层Widget实时显示视频内容,这一步是通过把这个Widget句柄传给第三方的Camera库,由第三方库把实时图像显示在这个Widget上。然后我们需要在这个视频图像上画一些栅格。因为直接在显示视频的Widget上画栅格会被视频图像覆盖掉,所以我目前的方案是在图像层上再铺一个Widget,在这个Widget上画栅格就可以了。现在的问题就是这个用来画栅格的Widget的背景,怎样能设置成透明的,从而达到在视频图像上只显示栅格的效果呢?
...全文
166 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Carmack Jiang 2014-06-10
  • 打赏
  • 举报
回复
使用graphics view framework 实现多图层
大卫无限 2014-06-10
  • 打赏
  • 举报
回复

class Test : public QWidget
{
void paintEvent(QPaintEvent *e)
{
    QWidget::paintEvent(e);
    QPainter painter(this);
    painter.fillRect(this->rect(), Qt::transparent);
    QPen pen(Qt::black);
    pen.setWidth(2);
    painter.setPen(pen);
    painter.drawText(50, 50, "ttttttttttttt");
    painter.drawRect(20, 20, 40, 40);
}
};
或者直接用 widget->setStyleSheet("background-color:transparent;"); 这个我不确定会不会把你画的格子也隐藏了.
huozi19820418 2014-06-10
  • 打赏
  • 举报
回复
Qt::transparent和setAttribute(Qt::WA_TranslucentBackground)等常规方法基本上都试过了,如果下层Widget不用来显示视频图像的话,这些方法是好用的,但在下层Widget用来显示视频图像的情况下,上层Widget就会覆盖图像,也就是说这些设置透明度的方法都不管用。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧