本页内容

Qt 5 Compatibility APIs:Graphical Effects

QtGraphical Effects 模块旨在确保与为 Qt 5 编写的应用程序的兼容性。

QtGraphical Effects 模块提供了一组 QML 类型,用于为用户界面添加视觉效果出众且可配置的特效。特效是可作为 UI 组件添加到Qt Quick 用户界面的视觉元素。

注意:由于 QtGraphical Effects 模块在效果堆叠时存在性能限制,因此其主要目的是为了与 Qt 5 应用程序保持兼容性。 我们建议在编写新代码时,采用 Qt 6 中引入的全新特效解决方案之一。对于典型的 UI 特效,Qt Quick 提供了MultiEffect ,该组件可在单次处理中应用多种特效。对于该组件未涵盖的高级用例,可使用 Qt Quick Effect Maker 工具可用于自定义并精确调整您所需的着色器效果。

使用 QtGraphical Effects

要导入 QtGraphical Effects 类型,请通过在 QML 文件中添加以下语句来包含 QtGraphical Effects 模块:

import Qt5Compat.GraphicalEffects

要使用这些效果,只需在 QML 场景中添加特定的效果声明,并配置效果属性即可。 效果具有一个或多个源属性,用于指定要应用该效果的视觉输入。随后,经过处理的视觉输出将显示在效果项本身中。源项类型可以是任何 QML 类型,甚至是视频或另一个效果。将多个效果串联起来是一种简单的方法,可以创建更令人印象深刻的输出效果。

Graphical Effects以下列表展示了 Qt XML-ph-0000@deepl.internal 中各类效果的功能划分。

注意: 当使用Qt Quick 的software 后端运行时,效果 不可用。有关Qt Quick 场景图后端的更多信息,请参阅《场景图适配》。

注意: 诸如GaussianBlur 之类的运行时生成的 特效会使用QTemporaryFile 将着色器文件存储在临时存储中,因此需要可写入的文件系统。

混合

Blend

使用混合模式合并两个源项

颜色

BrightnessContrast

调整亮度和对比度

ColorOverlay

通过应用叠加颜色来更改源项的颜色

Colorize

在 HSL 色彩空间中设置颜色

Desaturate

降低颜色的饱和度

GammaAdjust

调整源项目的亮度

HueSaturation

在 HSL 色彩空间中调整源对象的颜色

LevelAdjust

调整 RGBA 色彩空间中的颜色级别

渐变

ConicalGradient

绘制锥形渐变

LinearGradient

绘制线性渐变

RadialGradient

绘制径向渐变

变形

Displace

根据给定的位移图移动源项目的像素

投影

DropShadow

在源项目后面生成柔和的阴影

InnerShadow

在源对象内部生成彩色且模糊的阴影

模糊

FastBlur

对一个或多个源项目应用快速模糊效果

GaussianBlur

应用更高质量的模糊效果

MaskedBlur

应用强度随时间变化的模糊效果

RecursiveBlur

反复进行模糊处理,产生强烈的模糊效果

运动模糊

DirectionalBlur

对指定方向应用模糊效果

RadialBlur

在项目中心点周围以圆形方向应用方向性模糊

ZoomBlur

应用朝向源项目中心点的定向模糊效果

光晕

Glow

生成源对象的模糊且着色图像,并将其置于原始图像之后,营造出源对象正在发光的效果

RectangularGlow

生成一个模糊且着色的矩形,营造出源图像仿佛在发光的效果

蒙版

OpacityMask

使用另一个项目对源项目进行蒙版处理

ThresholdMask

使用另一个对象对源对象进行蒙版处理,并应用阈值

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.