四、QML——Glow
有两种Item,都可以组件具备光晕效果,分别是 Glow
和 RectangularGlow
。
-
Glow
是一个视觉效果项,用于为对象创建发光效果(也称为辉光效果)。这种效果常用于突出显示或增强对象的可视吸引力。对于所有Item都可以。 -
RectangularGlow
具有良好的性能。光晕的形状限制为具有自定义角半径的矩形。对于需要自定义形状的情况,考虑光晕效应,使用Glow
。
1 Glow
1.1 Glow相关属性
1.1.1 cached
这个属性是布尔类型,是否允许缓存效果的输出像素,以提高渲染的性能。
如果source的相关属性是进行动画效果变化时,禁用该选项1.1.2 color
设置光晕的颜色
1.1.3 radius
radius
定义了glow效果的柔和度(其实就是光晕发散的一个范围),较大的radius
会使得glow的边缘更加显得模糊。
根据 radius
,samples
的值应该设置足够大,以确保视觉质量。例如:samples = 1 + radius * 2
1.1.4 samples
该属性用于定义边缘模糊时计算每个像素所取的样本数量。较大的值会产生更好的质量,但渲染速度较慢。
理想情况下,此属性值最大为 samples = 1 + radius * 2
默认情况下,该属性设置为 9。此属性不适用于动画。更改此属性会导致底层的 OpenGL 着色器重新编译。
1.1.5 source
此属性定义将用于生成光晕效果的源项。
1.1.6 spread
在源边附近辉光颜色的大部分增强程度。该值的范围为 0.0(无强度增加)到 1.0(最大强度增加)。默认情况下,该属性设置为 0.0
1.1.7 transparentBorder
transparentBorder
属性用于控制光晕效果周围是否添加透明边框。
-
当
transparentBorder
设置为true
(默认值)时,Glow 效果会在项的外部增加一层透明边框。这使得在模糊处理时,超出源项范围的像素会被视为透明,而不会用源项边缘的像素填充。这样能够产生平滑的模糊边缘,适用于需要柔化光晕的情况。 -
当
transparentBorder
设置为false
时,如果源项的边缘已经是透明的,就不需要添加额外的透明边框,这样可以稍微提高渲染性能。
2 RectanglarGlow
2.1 RectanglarGlow属性
2.1.1 color
用于光晕的 RGBA 颜色值。默认情况下,该属性设置为 “white”。
2.1.2 cornerRadius
用于绘制圆角光晕的角半径。该值的范围为 0.0 到光晕有效宽度或高度的一半,以较小者为准。这可以通过以下公式计算:min(width, height) / 2.0 + glowRadius。默认情况下,该特性绑定到 glowRadius 特性。调整 glowRadius 特性时,光晕的行为就像矩形模糊一样。
2.1.3 glowRadius
光晕到达项目区域外的像素数。该值的范围从 0.0(无光晕)到 inf(无限光晕)。默认情况下,该属性设置为 0.0
其实就是要给那个图形添加光晕(阴影),超出光晕在图形外扩展多长2.1.4 spread
在源边附近辉光颜色的大部分增强程度。该值的范围为 0.0(无强度增加)到 1.0(最大强度增加)。默认情况下,该属性设置为 0.0