使用DTK创建模糊背景窗口并自定义阴影效果
DTK是deepin开发的基于Qt的开发套件,提供了大量的具有独特风格的美化控件,也提供了很多非常方便的API,下边我们用DTK实现一个模糊窗口,并设置其阴影效果。
使用场景
一切需要模糊窗口作为美化的地方,当作为悬浮窗等小型窗口时,可以减弱阴影的深度来达到更好地效果。
具体方法
将MainWindow继承自DTK的模糊窗口控件DBlurEffectWidget
,然后使用DPlatformWindowHandle修改阴影效果。
下面是MainWindow的构造函数:
MainWindow::MainWindow(QWidget *parent)
: DBlurEffectWidget(parent)
{
DPlatformWindowHandle *handle=new DPlatformWindowHandle(this);
handle->setShadowColor(QColor(255,0,0,100)); //修改阴影颜色,最后一项为alpha通道
setMaskAlpha(0); //设置模糊窗口的不透明度,数值越低越通透
}
需要包含头文件DBlurEffectWidget、DPlatformWindowHandle。
通过调用setShadowColor
来修改阴影的颜色,使用alpha通道修改阴影的不透明度。
上述代码将阴影设置为红色,并将不透明度设置为100(我知道效果稍微辣眼,但是这只是演示)。
效果如图所示:
另外,DTK提供的DMainWindow是可以直接调用接口来修改阴影效果的,不需要这样麻烦。