AWTK 异形进度条控件发布

异形进度条控件。通过多边形来定义进度条的形状。

代码地址:https://gitee.com/zlgopen/awtk-widget-progress-polygon
在这里插入图片描述

特性

  • 通过多边形定义进度条的形状
  • 支持通过图片来定义进度条的背景
  • 支持通过图片来定义进度条的前景

使用图片填充比使用颜色填充消耗更多的内存和 CPU,所以在性能要求较高的场景下,尽量使用颜色填充。

用法

多边形的描述用一组 5 元组表示,每个 5 元组包含:

  • value: 进度值 (0-1), 0 表示进度为 0,1 表示进度完成
  • x1: 第一个点的 x 坐标。如果取值 [0,1] 之间,则实际的值为 x1 * width。
  • y1: 第一个点的 y 坐标。如果取值 [0,1] 之间,则实际的值为 y1 * height。
  • x2: 第二个点的 x 坐标。如果取值 [0,1] 之间,则实际的值为 x2 * width。
  • y2: 第二个点的 y 坐标。如果取值 [0,1] 之间,则实际的值为 y2 * height。

它的表示进度为 value 时,进度条对应的上下或左右两个点的坐标。

元组的个数不限,对于直线,描述转折点即可,对于曲线形状,采样就要多一些,才能画出更平滑的曲线。

使用图片填充时,把图片不需要的部分做成透明色,则坐标描述不需要太精确,将图片有用部分包括在其中即可。

示例 1 - 传统矩形进度条

  • 进度为0时,上下的坐标分别为 (0,0) 和 (0,1)
  • 进度为1时,上下的坐标分别为 (1,0) 和 (1,1)
 <progress_polygon polygon="(0, 0,0,0,1)(1, 1,0,1,1)"/>

示例 2 - 三角形进度条

  • 进度为0时,上下的坐标分别为 (0,1) 和 (0,1)
  • 进度为1时,上下的坐标分别为 (1,0) 和 (1,1)
<progress_polygon polygon="(0, 0,1,0,1)(1, 1,0,1,1)" />

准备

  1. 获取 awtk 并编译
git clone https://github.com/zlgopen/awtk.git
cd awtk; scons; cd -

运行

  1. 生成示例代码的资源
python scripts/update_res.py all

也可以使用 Designer 打开项目,之后点击 “打包” 按钮进行生成;
如果资源发生修改,则需要重新生成资源。

如果 PIL 没有安装,执行上述脚本可能会出现如下错误:

Traceback (most recent call last):
...
ModuleNotFoundError: No module named 'PIL'

请用 pip 安装:

pip install Pillow
  1. 编译
  • 编译 PC 版本
scons
  • 编译 LINUX FB 版本
scons LINUX_FB=true

完整编译选项请参考 编译选项

  1. 运行
./bin/demo

文档

完善自定义控件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/3131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Debezium分享系列之:Debezium2.6稳定版本设置SQL Server数据库

Debezium分享系列之:Debezium2.6稳定版本设置SQL Server数据库 一、在 SQL Server 数据库上启用 CDC二、在 SQL Server 表上启用 CDC三、验证用户是否有权访问 CDC 表四、SQL Server Always On五、SQL Server 捕获作业代理配置对服务器负载和延迟的影响六、SQL Server 捕获作业…

速盾:常见的DDOS攻击类型有哪些?

DDoS&#xff08;分布式拒绝服务&#xff09;攻击是一种通过使目标系统超负荷而使其无法正常工作的网络攻击手段。在这种攻击中&#xff0c;恶意攻击者使用多个主机或设备&#xff08;也被称为僵尸网络或机器人网络&#xff09;来同时向目标系统发送大量的网络流量&#xff0c;…

数据结构练习-线性表定义与基本操作

----------------------------------------------------------------------------------------------------------------------------- 1. 线性表是( )。 A.一个有限序列&#xff0c;可以为空 B. 一个有限序列&#xff0c;不可以为空 C. 一个无限序列&#xff0c;可以为空…

第三次国土调查数据库字母缩写代表含义

CCWJQ拆除未尽区&#xff0c;CJDCQ村界调查区&#xff0c;CJDCQJX村界调查区界线&#xff0c;CLKZD测量控制点&#xff0c;CSKFBJ城市开发边界&#xff0c;CZCDYD城镇村等用地&#xff0c;DGX等高线&#xff0c;DLTB地类图斑&#xff0c;DZGY地质公园&#xff0c;FJMSQ风景名胜…

【一般排查思路】针对银河麒麟高级服务器操作系统磁盘空间已满

1. 本身磁盘空间已满 有时候我们会看到服务器上有提示“设备上没有空间”&#xff0c;如图1。 图 1 如果是磁盘本身空间已满&#xff0c;我们可以借助du工具来排查&#xff0c;比如首先cd / 切换到根目录&#xff0c;然后 du -sh * | sort -rh | head -n 3查看空间占用最大的…

【Unity】苹果(IOS)开发证书保姆级申请教程

前言 我们在使用xcode出包的时候&#xff0c;需要用到iOS证书(.p12)和描述文件(.mobileprovision) 开发证书及对应的描述文件用于开发阶段使用&#xff0c;可以直接将 App 安装到手机上&#xff0c;一个描述文件最多绑定100台测试设备 1.证书管理 进入网站Apple Developer &…

面向对象-其他(多态、类)

目标 面向对象三大特性类属性和实例属性类方法和静态方法 一. 面向对象三大特性 封装 将属性和方法书写到类的里面的操作即为封装封装可以为属性和方法添加私有权限 继承 子类默认继承父类的所有属性和方法子类可以重写父类属性和方法 多态 传入不同的对象&#xff0c;产生不…

【C++】STL-vector模拟实现

目录 1、vactor的模拟实现 1.1 成员变量 1.2 size、capacity 1.3 迭代器 1.4 构造、析构、拷贝构造、operator 1.5 push_back、pop_back、reserve 1.6 operator[] 1.7 insert、erase 1.8 resize 2、使用memcpy拷贝问题 1、vactor的模拟实现 1.1 成员变量 vector是顺…

架构师系列-Nginx、OpenResty(一)- 基本使用配置

Nginx 模块 高度模块化的设计是 Nginx 的架构基础&#xff0c;Nginx 服务器被分解为多个模块&#xff0c;每个模块就是一个功能模块&#xff0c;只负责自身的功能&#xff0c;模块之间严格遵循“高内聚&#xff0c;低耦合”的原则。 核心模块 核心模块是 Nginx 服务器正常运行…

数据库系统原理实验报告4 | 数据完整性

整理自博主本科《数据库系统原理》专业课自己完成的实验报告&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 专业课本&#xff1a; ———— 本次实验使用到的图形化工具&#xff1a;Heidisql 目录 一、实验目的 二、实验内容 1、建表 2、对1题中创建的Stud…

<计算机网络自顶向下> 无连接传输UDP

UDP&#xff1a;User Datagram Protocol “尽力而为”的服务 报文可能丢掉或者乱序好处&#xff1a; 效率高&#xff08;不建立连接无拥塞控制和流量控制【应用->传输的速率主机->网络的速率】&#xff09;报文段的头部很小&#xff08;开销小&#xff09;UDP被用于 流媒…

JVM常见的垃圾回收器

1、回收方法区&#xff1a; 方法区回收价值很低&#xff0c;主要回收废弃的常量和无用的类。 方法区中的存储&#xff1a; 方法区中存储的是加载的类的信息&#xff0c;常量&#xff0c;静态变量&#xff0c;即时编译后的代码等数据&#xff0c;所以回收的对象也就是这些内…

如何在一台服务器上同时运行搭载JDK 8, JDK 17, 和 JDK 21的项目:终极指南

&#x1f42f; 如何在一台服务器上同时运行搭载JDK 8, JDK 17, 和 JDK 21的项目&#xff1a;终极指南 &#x1f680; 摘要 在企业开发环境中&#xff0c;常常需要在同一台服务器上运行使用不同Java开发工具包&#xff08;JDK&#xff09;版本的多个项目。本文详细介绍如何在L…

报错import build constraints exclude all Go files in

好久没用fyne突然报错 报错import ...go-gl.. build constraints exclude all Go files in go-gl .. 检查gcc --version正常输出 检查gcc版本正常&#xff0c;路径正常。 尝试解决的方法&#xff0c; 1.重新安装依赖&#xff0c;不行 2.重新配置下载地址&#xff0c;不…

MongoDB应用:forEach方法实际应用

项目场景 今日的工作中有个需求是按照条件修改MongoDB集合中某个字段的值。之前都是用kettle或者代码处理&#xff1b;但是对于短频、偶尔的修改&#xff0c;上述方式实在是浪费时间。所以研究了下如何通过写MongoDB的 shell去实现。 代码呈现 在做语法说明之前&#xff0c…

window平台C#实现软件升级功能(控制台)

window平台C#实现软件升级功能 之前用window窗体实现过一个升级功能&#xff0c;后来发现多个项目都需要升级功能&#xff0c;现改成可接收参数实现一种通用的exe.改用控制台方式实现这个升级功能&#xff0c;这样不仅实现了接收参数&#xff0c;升级程序体积也比原来的窗体形式…

Eigen::Quaternion

使用 Eigen 库中的 Quaternion 类的简单文档&#xff1a; Eigen::Quaternion 是什么&#xff1f; Eigen::Quaternion 是 Eigen 库中用于表示四元数的类。四元数是一种数学工具&#xff0c;广泛用于旋转表示&#xff0c;尤其在计算机图形学和机器人学中。 如何创建 Eigen::Qu…

河道采砂执法监管信息化平台:科技赋能,智慧监管

随着信息技术的飞速发展&#xff0c;信息化平台已经成为提升行业监管效率和水平的重要工具。河道采砂作为水利资源管理的重要环节&#xff0c;其执法监管同样需要与时俱进&#xff0c;利用先进技术手段提升监管效能。河道采砂执法监管信息化平台便是这一背景下的产物&#xff0…

从底层分析并详解SpringAOP底层实现

首先分析AOP的实现 首先切面&#xff08;Advisor&#xff09;由通知(Advice)和切点(Pointcut)组成 包括前置通知后置通知等等最终都会被转化为实现 MethodInterceptor 接口的环绕通知 先看一段代码了解一下是aop是怎么运作的 首先定义了两个类实现了MethodInterceptor接口&…

Unity HDRP Water Surface 水系统 基础教程

Unity HDRP Water Surface 水系统 基础教程 Unity Water SurfaceUnity 项目创建Unity Water Surface&#xff1a;Ocean&#xff08;海洋&#xff09;简介Ocean&#xff1a;Transform、GeneralOcean&#xff1a;Simulation&#xff08;仿真模拟&#xff09;Ocean&#xff1a;Sim…