使用DTK创建模糊背景窗口并自定义阴影效果
阅读原文时间:2023年07月10日阅读:1

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

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器