qt里怎么让无边框窗体有阴影
时间: 2024-04-22 20:28:57 浏览: 14
在 Qt 中,可以通过 `QGraphicsDropShadowEffect` 类来为无边框窗体添加阴影效果。具体实现步骤如下:
1. 在窗体的头文件中包含 `QGraphicsDropShadowEffect` 类的头文件:
```cpp
#include <QGraphicsDropShadowEffect>
```
2. 创建 `QGraphicsDropShadowEffect` 对象,并设置阴影的颜色、模糊半径和偏移量:
```cpp
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setBlurRadius(10); // 设置模糊半径
shadow->setOffset(0); // 设置阴影偏移量
shadow->setColor(QColor(0, 0, 0, 100)); // 设置阴影颜色和透明度
```
3. 将 `QGraphicsDropShadowEffect` 对象应用到窗体上:
```cpp
setGraphicsEffect(shadow);
```
完整的示例代码如下:
```cpp
#include <QGraphicsDropShadowEffect>
// ...
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// ...
// 创建阴影效果
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setBlurRadius(10); // 设置模糊半径
shadow->setOffset(0); // 设置阴影偏移量
shadow->setColor(QColor(0, 0, 0, 100)); // 设置阴影颜色和透明度
// 将阴影效果应用到窗体上
setGraphicsEffect(shadow);
}
```
希望对您有所帮助!