qt 实现和mac一样的毛玻璃效果
时间: 2023-09-16 13:02:25 浏览: 427
QT C++ QWidget 自定义头窗口头标+毛玻璃效果
在Qt中实现和Mac一样的毛玻璃效果需要使用Qt提供的QGraphicsEffect类和QGraphicsOpacityEffect类。
首先,我们可以创建一个QGraphicsView来显示我们的窗口内容,然后为该QGraphicsView设置一个毛玻璃效果:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QGraphicsView view;
QGraphicsOpacityEffect *effect = new QGraphicsOpacityEffect;
effect->setOpacity(0.9); // 设置透明度,值在0.0~1.0之间
view.setViewport(new QWidget);
view.viewport()->setGraphicsEffect(effect);
view.show();
return app.exec();
}
```
接下来,我们可以使用QGraphicsDropShadowEffect类创建一个阴影效果,使窗口看起来更加逼真:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QGraphicsView view;
QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect;
opacityEffect->setOpacity(0.9); // 设置透明度,值在0.0~1.0之间
QGraphicsDropShadowEffect *shadowEffect = new QGraphicsDropShadowEffect;
shadowEffect->setBlurRadius(20); // 设置模糊半径
shadowEffect->setColor(Qt::black); // 阴影颜色
shadowEffect->setOffset(0); // 阴影偏移量
QGraphicsEffectGroup *effectGroup = new QGraphicsEffectGroup;
effectGroup->setOpacityEffect(opacityEffect);
effectGroup->addEffect(shadowEffect);
view.setViewport(new QWidget);
view.viewport()->setGraphicsEffect(effectGroup);
view.show();
return app.exec();
}
```
以上就是使用Qt实现和Mac一样的毛玻璃效果的方法。
阅读全文