Qt 视频渲染窗口上子窗口设置 全透明 ,子窗口部分显示阴影
时间: 2023-07-19 12:04:12 浏览: 514
可以通过设置子窗口的 `Qt::WA_TranslucentBackground` 属性和 `setGraphicsEffect()` 方法来实现子窗口全透明并显示阴影的效果。
具体实现步骤如下:
1. 在子窗口的构造函数中设置 `Qt::WA_TranslucentBackground` 属性为 true,表示子窗口使用透明背景。
2. 创建一个 `QGraphicsDropShadowEffect` 对象,用于产生阴影效果。
3. 调用 `setGraphicsEffect()` 方法将阴影效果应用到子窗口上。
示例代码如下:
```
// 设置子窗口透明
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
setAttribute(Qt::WA_TranslucentBackground, true);
// 创建阴影效果
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setBlurRadius(10); // 设置阴影模糊半径
shadow->setColor(Qt::black); // 设置阴影颜色
shadow->setOffset(0); // 设置阴影偏移量
// 应用阴影效果到子窗口
setGraphicsEffect(shadow);
```
在上述代码中,我们首先设置子窗口的 `Qt::WA_TranslucentBackground` 属性为 true,然后创建了一个 `QGraphicsDropShadowEffect` 对象,设置了阴影的模糊半径、颜色和偏移量,最后将阴影效果应用到子窗口上。
阅读全文