使用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是可以直接调用接口来修改阴影效果的,不需要这样麻烦。

posted @ 2021-02-05 15:39  Maicss  阅读(70)  评论(0编辑  收藏  举报