Qt Quick 提供了 Graphical Effects ,我在《Qt Quick核心编程》一书中限于篇幅没有介绍,这里补上吧。
Graphical Effects ,姑且叫作图形效果吧。它提供了 Blend 、 Color 等好几类效果,有些类别下面又有多种不同的效果,要介绍完整需要较长的篇幅。我们一个一个来看。
概要介绍
先看看都有哪几类图形效果(Graphical Effects)吧:
- Blend,混合。只有一种类型——Blend,使用一种混合模式来合并两个源 items 。
- Color,颜色,通过改变一个 Item 的颜色来产生各种各样的效果。有下列几种类型:
-
- BrightnessContrast,调整亮度和对比度
- ColorOverlay,在源 Item 上覆盖一层颜色
- Colorize,设置源 Item 的 HSL 颜色空间
- Desaturate,降低颜色的饱和度
- GammaAdjust,使用 gamma 曲线来改变源 Item 的照度
- HueSaturation,在 HSL 颜色空间改变源 Item 的颜色
- LevelAdjust,在 RGBA 颜色空间调整源 Item 的颜色水平
- Gradient,渐变。有下列几种类型:
-
- ConicalGradient,锥形渐变
- LinearGradient,线性渐变
- RadialGradient,径向渐变
- Distortion,变形。只有一种类型——Displace,根据给定的位移 map 来改变源 Item 的像素
- Drop Shadow,投影。有两种类型:
-
- DropShadow,根据源 Item 产生一个彩色的、模糊的影子图像,并且把它放到原始图像的后面,会产生源 Item 在背景上凸起的效果
- InnerShadow,在源 Item 里面产生一个彩色的、模糊的图像
- Blur,模糊。有下面几种类型:
-
- FastBlur,快速模糊
- GaussianBlur,高斯模糊
- MaskedBlur,差异化模糊,可以根据一个掩码元素对源 Item 的不同区域产生强度不同的模糊效果
- RecursiveBlur,递归模糊。通过反复模糊来产生很强的模糊效果。
- Motion Blur,运动模糊。有下面几种类型:
-
- DirectionalBlur,定向模糊,在指定的方向上产生模糊效果
- RadialBlur,径向模糊,在以源 Item 的中心点为圆心的一个圆形内应用定向模糊
- ZoomBlur,缩放模糊,朝着源 Item 的中心点应用定向模糊
- Glow,发光。有下面几种类型:
-
- Glow,根据源 Item 产生一个彩色的、模糊的发光效果图像,并且把它放到源 Item 后面,产生一种源 Item 在发光的效果。
- RectangularGlow,生成一个模糊的、彩色的矩形,给人发光的印象
- Mask,遮罩。有下面几种类型:
-
- OpacityMask,透明遮罩。用另一个 Item 遮挡源 Item
- ThresholdMask,阈值遮罩。用另一个 Item 遮挡源 Item,根据一个阈值来应用遮挡效果
示例项目
我设计了一个示例来演示所有的图形效果,它是一个 Qt Quick App 项目。下面是示例运行后的首页:
图 1 示例首页
我们结合图 1 来介绍一下示例项目的结构。
如图 1 所示,首页中间是一个列表,列出了所有的