Skip to content

UniDeskAcrylic 类型

毛玻璃(亚克力)效果控件。通过 FastBlur 模糊目标区域,叠加颜色、亮度和噪点纹理,实现 Windows 风格的亚克力半透明效果。

项目说明
控件类型可视化控件(Control)
源代码文件路径UniDesk/Controls/UniDeskAcrylic.qml
继承QtQuick Item
QML 导入方式import UniDesk.Controls 1.0

自定义属性

属性类型默认值说明
tintColorcolorQt.rgba(1, 1, 1, 1)色调颜色
tintOpacityreal0.65色调不透明度
luminosityreal0.01亮度叠加
noiseOpacityreal0.02噪点纹理不透明度
targetvar毛玻璃渲染的目标 Item
blurRadiusint32模糊半径
targetRectrectItem 区域渲染矩形范围
cornerRadiusint5圆角半径

实现原理

  1. 使用 ShaderEffectSource 截取目标区域
  2. 通过 FastBlur 进行高斯模糊
  3. 叠加亮度层、色调层和噪点层

示例

qml
import UniDesk.Controls 1.0

UniDeskAcrylic {
    anchors.fill: parent
    target: parent
    blurRadius: 32
    cornerRadius: 8
    tintColor: UniDeskGlobals.isLight ? Qt.rgba(1,1,1,1) : Qt.rgba(0,0,0,1)
    tintOpacity: 0.65
    luminosity: 0.01
    noiseOpacity: 0.02
}

相关文档

遵循 CC BY-SA 4.0 协议开源文档。