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

Qml 实现水波进度动画条

【写在前面】

        最近看到一个非常有趣的动画效果:水波进度动画

        学习了一下实现思路,觉得很有意思。

        不过原版是 HTML + CSS,我这里用的是 Qml,有一些小技巧,分享给大家~


【正文开始】

        老样子,先来看看效果图:

        最基础的无非就是四个部分:

        1、圆形水缸

        2、水波

        3、百分比数字

        4、进度条

        水波效果最重点的就是水波,其实这个水波就是个障眼法罢了,画张图你们就明白了。

        它就是一个圆角正方形,一直在旋转和上升下降,让用户有一种水波的视觉感~

         当然,我们还需要将多余的部分裁剪掉,因此这里需要借助 OpacityMask

        OpacityMask 原理是将 Source 对应 MaskSource 中的透明部分掩盖掉。

        但我们不能直接透出 Source 部分 ( 蓝色圆角矩形 ),需要将它先下移,然后裁剪得到:

         接着,使用一个圆形作为 MaskSource 即可裁剪出下面的形状:

        最后,让蓝色圆角矩形无限旋转即可:

    Item {id: waveclip: trueanchors.fill: parentvisible: falseRectangle {y: mask.height * 1.1 * (1 - root.value)width: root.radius * 4height: root.radius * 4anchors.horizontalCenter: parent.horizontalCenterradius: root.radius * 1.5color: root.waveColorrotation: 45NumberAnimation on rotation {from: 0to: 360running: root.value < 1.0duration: root.waveSpeed * 1000loops: NumberAnimation.Infinite}}}

         至于进度条和文字就非常简单,直接看源码即可。


【结语】

        最后:项目链接(多多star呀..⭐_⭐):

        Github 地址:

https://github.com/mengps/QmlControls/tree/master/WaveProgressicon-default.png?t=O83Ahttps://github.com/mengps/QmlControls/tree/master/WaveProgress        CSDN 的:

https://download.csdn.net/download/u011283226/89731283icon-default.png?t=O83Ahttps://download.csdn.net/download/u011283226/89731283


http://www.mrgr.cn/news/23729.html

相关文章:

  • [笔记] 电机工作制以及软硬特性的本质推导
  • LeetCode之高频SQL50题
  • Vue2+JS项目升级为Vue3+TS之jquery的maphilight引入项目(附使用)
  • python如何获取html中的所有链接
  • 儿童护眼灯哪个牌子好?五款眼科医生推荐的台灯分享
  • 诸葛io:消费金融行业智能运营与数智化经营模型构建
  • Kotlin入门实用开发技巧与注意事项
  • YOLOv5 目标计数 | 图片上绘制计数结果
  • “深入解析:MySQL半同步复制的配置指南与实践技巧“
  • 俄罗斯电商没有技巧,OZON换季相关爆品
  • Java-数据结构-栈和队列-习题 (<ゝω・)☆
  • keithley 2430 数字源表
  • vue3+vite+elementPlus修改elementPlus主题色
  • Git 撤销commit
  • Modbus协议基础知识
  • 【ESP32】fopen 无法创建.html文件
  • 图为科技基于昇腾AI,打造智慧工厂检测解决方案
  • io_uring异步IO
  • Python Web 框架篇:Flask、Django、FastAPI介绍及其核心技术
  • 关于2023.9.2~2023.9.10学习总结与教训