当前位置: 首页 > news >正文

QML图形效果之阴影效果(DropShadow与InnerShadow)

目录

    • 引言
    • 相关系列
    • 基础知识
      • DropShadow(投影)
      • InnerShadow(内阴影)
    • 工程完整示例展示
    • 代码说明
    • 运行效果
    • 总结
    • 下载链接

引言

Qt的QML为开发者提供了丰富的图形特效模块,其中DropShadow(投影)和InnerShadow(内阴影),让我们可以轻松为界面元素添加柔和、自然的阴影效果。本文将结合官方文档和工程示例,展示这两种阴影特效的基本用法及实际效果。


相关系列

  • QML图形效果之BrightnessContrast(亮度对比度)、Glow(发光)
  • QML图形效果之颜色效果示例(Colorize、HueSaturation、ColorOverlay与Desaturate)
  • QML图形效果之渐变效果示例
  • QML图形效果之混合效果示例

基础知识

DropShadow(投影)

DropShadow 是 QML 提供的一个图形特效,用于在元素下方生成投影。它常用于图片、按钮等控件,增强立体感。主要属性包括:

  • source:需要添加阴影的源对象。
  • horizontalOffset / verticalOffset:阴影的水平/垂直偏移量。
  • radius:阴影的模糊半径,数值越大阴影越柔和。
  • color:阴影颜色及透明度。

详细用法可参考官方文档。

InnerShadow(内阴影)

InnerShadow 则是在元素内部生成阴影,常用于表现凹陷、内嵌等效果。主要属性与 DropShadow 类似,此外还包括:

  • samples:采样点数量,影响阴影的平滑度。
  • 其余属性如 sourcehorizontalOffsetverticalOffsetradiuscolor等用法一致。

详细用法可参考官方文档。


工程完整示例展示

DropShadowEffect.qml

import QtQuick
import QtQuick.Controls
import Qt5Compat.GraphicalEffectsItem {Flow {anchors.fill: parentspacing: 10padding: 10Rectangle {width: 280height: 280color: "white"Image {id: butterflysource: "qrc:/images/butterfly.png"sourceSize: Qt.size(parent.width, parent.height)smooth: truevisible: false}DropShadow {anchors.fill: butterflyhorizontalOffset: 3verticalOffset: 3radius: 8.0color: "#80000000"source: butterfly}}Rectangle {width: 280height: 280color: "white"Image {id: butterfly2source: "qrc:/images/butterfly.png"sourceSize: Qt.size(parent.width, parent.height)smooth: truevisible: false}InnerShadow {anchors.fill: butterfly2horizontalOffset: -3verticalOffset: 3radius: 8.0samples: 16color: "#b0000000"source: butterfly2}}}
}

代码说明

  1. 整体结构
    使用 Item 作为根元素,内部通过 Flow 布局,横向排列两个带阴影效果的图片区域。

  2. 第一个 Rectangle(展示DropShadow用法)

    • Rectangle 作为背景,Image 加载蝴蝶图片,visible: false 让图片本身不显示,仅作为阴影源。
    • DropShadow 绑定到图片,设置偏移(3,3)、模糊半径8、半透明黑色,生成柔和的投影效果。
  3. 第二个 Rectangle(展示InnerShadow用法)

    • 同样的背景和图片设置。
    • InnerShadow 绑定到图片,设置偏移(-3,3)、模糊半径8、采样点16,生成内嵌阴影效果。

运行效果

在这里插入图片描述
左侧为带有外部投影的蝴蝶图片,右侧为带有内部阴影的蝴蝶图片。投影和内阴影均为半透明黑色,增强了图片的立体感和视觉层次。


总结

通过本工程示例,我们可以看到 QML 的 DropShadow 和 InnerShadow 特效非常易用,只需简单配置即可为界面元素增添丰富的视觉效果。掌握这些基础用法,有助于我们在实际项目中快速实现美观、现代的UI界面。

下载链接

下载链接: GitCode -> Graphical Effects Demo

在这里插入图片描述

http://www.dtcms.com/a/298048.html

相关文章:

  • Cacti命令执行漏洞分析(CVE-2022-46169)
  • compileSdkVersion和targetSdkVersion可以不一样的版本吗
  • 图论:并查集
  • 深入解析JVM垃圾回收调优:性能优化实践指南
  • Python 数据可视化之 Matplotlib 库
  • Java常用命令、JVM常用命令
  • RAG面试内容整理-3. 向量检索原理与常用库(ANN、FAISS、Milvus 等)
  • blender基本操作
  • flutter TextField 失去焦点事件
  • Qt:qRegisterMetaType函数使用介绍
  • 安全风险监测平台:被动应对向主动预防的转变
  • Ethereum:告别 personal API,拥抱 Geth 的独立签名器 Clef
  • [HarmonyOS] Harmony LiteOS-A 驱动框架深度解析:HDF 让万物互联更简单
  • EC 技术赋能:福佑防爆风扇如何平衡安全与节能?
  • JVM相关面试八股
  • Mysql实现高可用(主从、集群)
  • Unity GC 系列教程第五篇:高级 GC 内核
  • Python(32)Python内置函数全解析:30个核心函数的语法、案例与最佳实践
  • IPv6网络排障详细步骤指南(附工具命令+配置检查点+典型案例)
  • 【MAC的VSCode使用】
  • Python 爬虫实战指南:按关键字搜索淘宝商品
  • 使用Redis实现MySQL的数据缓存
  • JavaScript前端加密技术:aes.js与crypto-js.js深度解析
  • 2025年7月25日训练日志
  • PWM信号控制电机
  • Creo 模块众多,企业如何按需灵活分配许可证资源?
  • 倒计时 1 天!深思考携超小端侧多模态大模型,在2025 WAIC H2-427展位等你解锁端侧新可能!
  • go语言基础教程:【2】基础语法:基本数据类型(整形和浮点型)
  • mybatis 差异更新法
  • gig-gitignore工具实战开发(三):gig add基础实现