LVGL学习笔记13 - 圆弧Arc

news2024/9/27 21:30:50

目录

1. Parts

2. 样式

2.1 旋转

2.3 设置角度范围

2.4 设置值范围

2.5 清除Knob显示

 2.6 禁止点击调整值

 2.7 修改圆环前景色

2.8 修改圆环背景色

2.9 修改圆弧末端形态

 2.10 修改圆弧宽度

2.11 修改圆弧透明度

 3. 事件


圆弧由背景和前景弧组成,通过lv_arc_create创建。

lv_obj_t *obj1 = lv_arc_create(lv_scr_act());
lv_obj_align(obj1, LV_ALIGN_TOP_LEFT, 10, 10);

1. Parts

圆弧的部件包括LV_PART_MAIN,LV_PART_INDICATOR,LV_PART_KNOB。

    lv_obj_set_style_bg_opa(obj1, LV_OPA_100, LV_PART_MAIN);
    lv_obj_set_style_bg_color(obj1, lv_color_hex(0xFF0000), LV_PART_MAIN);

    lv_obj_set_style_bg_opa(obj1, LV_OPA_100, LV_PART_INDICATOR);
    lv_obj_set_style_bg_color(obj1, lv_color_hex(0x00FF00), LV_PART_INDICATOR);
    lv_obj_set_style_pad_column(obj1, 40, LV_PART_INDICATOR);
    lv_obj_set_style_pad_row(obj1, 40, LV_PART_INDICATOR);

    lv_obj_set_style_bg_color(obj1, lv_color_hex(0x0000FF), LV_PART_KNOB);

这里没看到INDICATOR部分的显示。

2. 样式

2.1 旋转

旋转是顺时针旋转。

lv_arc_set_rotation(obj1, 90);

2.3 设置角度范围

可以通过lv_arc_set_bg_angles/lv_arc_set_bg_start_angle/lv_arc_set_bg_end_angle设置,起始范围是【0:360】。0°对应的位置是3点位置,并且沿着顺时针方向增加。

lv_arc_set_bg_angles(obj1, 0, 360);

可是这里似乎有个bug,点击一下后蓝色的Knob会跳一下。 

等效的方式:

lv_arc_set_bg_start_angle(obj1, 0);
lv_arc_set_bg_end_angle(obj1, 360);

2.4 设置值范围

通过lv_arc_set_range设置值范围,值的范围和角度范围是对应的。start_angle对应range_min, end_angle对应range_max。

2.5 清除Knob显示

将KNOB的Style移除即可。

lv_obj_remove_style(obj1, NULL, LV_PART_KNOB);

 2.6 禁止点击调整值

默认是可以 通过鼠标点击滑动调整值的。

lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE);

 2.7 修改圆环前景色

lv_obj_set_style_arc_color(obj1, lv_color_hex(0xff0000), LV_PART_INDICATOR);

2.8 修改圆环背景色

lv_obj_set_style_arc_color(obj1, lv_color_hex(0xff0000), LV_PART_MAIN);

2.9 修改圆弧末端形态

 通过lv_obj_set_style_arc_rounded可以将圆弧末端设置成圆形或者直线。

lv_obj_set_style_arc_rounded(obj1, false, LV_PART_MAIN);

 2.10 修改圆弧宽度

lv_obj_set_style_arc_width(obj1, 20, LV_PART_MAIN);

 

同样,LV_PART_MAIN对应圆弧的背景,而LV_PART_INDICATOR对应圆弧的前景。

2.11 修改圆弧透明度

lv_obj_set_style_arc_color(obj1, lv_color_hex(0xff0000), LV_PART_MAIN);
lv_obj_set_style_arc_color(obj1, lv_color_hex(0x0000ff), LV_PART_INDICATOR);
lv_obj_set_style_arc_opa(obj1, LV_OPA_0, LV_PART_INDICATOR);

 3. 事件

主要的事件是LV_EVENT_VALUE_CHANGED

    lv_obj_align(obj1, LV_ALIGN_TOP_LEFT, 10, 10);
    lv_obj_align(label1, LV_ALIGN_CENTER, 0, 0);
    lv_arc_set_range(obj1, 0, 100);
    lv_arc_set_value(obj1, 20);
    lv_obj_add_event_cb(obj1, arcEventHandle, LV_EVENT_VALUE_CHANGED, NULL);

static void arcEventHandle(lv_event_t* e)
{
    lv_event_code_t code = lv_event_get_code(e);
    lv_obj_t* obj = lv_event_get_target(e);
    if (code == LV_EVENT_VALUE_CHANGED)
    {
        lv_label_set_text_fmt(label1, "%d", lv_arc_get_value(obj));
    }
}

 

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

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

相关文章

密码学_SHA-1

SHA-1(Secure Hash Algorithm 1,安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成…

SpringCloud Netflix复习之Eureka

写作背景 SpringCloud Netflix作为SpringCloud第一代产品很经典,而且公司的老项目还在用SpringCloud Netflix的技术栈,有必要对SpringCloud Netflix的各种核心组件回归复习一下了。 本次复习的主角是微服务注册中心Eureka,本文的书写思路是五…

【大厂高频真题100题】《给表达式添加运算符》 真题练习第22题 持续更新~

给表达式添加运算符 给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 二元 运算符(不是一元)+、- 或 * ,返回 所有 能够得到 target 的表达式。 注意,返回表达式中的操作数 不应该 包含前导零。 示例 1: 输入: num = "123&q…

innovus中的DanglingWire(悬垂线)的理解和处理

在innovus工具里边,用户经常会使用verifyConnectivity 来进行open ,绕线完整性等问题的查验。对于绕线结果,尤其是PG绕线结果,使用这个命令可以很好的帮助用户在power planning阶段查验PG的闭合连接的状态(在pg DB中使…

JavaScript 监听单个元素高宽变化MutationObserver

如果你只是想监听窗口大小变化 resize就能满足你 window.onresize () > {console.log("窗口变化"); };jqurey写法 $(window).resize(()>{console.log("窗口变化"); })但如果是要监听某一块元素 resize就不太适用了 例如 我们在界面上定义一个类名…

MATLAB-条形图、饼状图绘制

条形图 bar命令用于绘制二维的垂直条形图,用垂直的条形显示向量或者矩阵的值,可以显示矢量数据和矩阵数据。使用格式如下。bar( y) %为每一个y中元素画出条形 bar( x,y) %在指定的横坐标x上画出y,其中x为严格单增的…

49_IAP实验

目录 IAP介绍 一般的程序执行流程 IAP程序执行流程 实验源码: IAP介绍 STM32编程方式: 1.在线编程(ICP,In-Circuit Programming):通过JTAG/SWD协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。 2.在程序中编程(IAP,In Application Programmi…

MySQL复制底层技术——LOGICAL_CLOCK并行复制、WRITESET并行复制

1. LOGICAL_CLOCK 并行复制 1.原理 从MySQL 5.7版本开始,支持LOGICAL_CLOCK级别的并行复制(基于MySQL 5.6的库级别的Group Commit并行复制的大幅改进),通过设置参数slave_parallel_type为LOGICAL_CLOCK来启用&#x…

蓝桥杯STM32G431RBT6学习——工程建立

蓝桥杯STM32G431RBT6学习——工程建立 前言 我始终认为一边学习一边记录是最好的方式,一方面便知识的梳理,另一方面便于二次复习使用。最后一次参加蓝桥杯,希望能整个不错的成绩。–2023/1/4 准备工具 1、keil5 2、STM32G系列芯片包 3、S…

PostgreSQL在openEuler上本地yum不能安装而网络yum却可以的原因分析

作者:IT圈黎俊杰 PostgreSQL是国外著名的开源数据库,openEuler是国内的开源操作系统品牌,当前PostgreSQL对openEuler是没有适配认证的,PostgreSQL官方更不存在提供可直接在openEuler操作系统上安装的RPM软件包了。 在PostgreSQL官…

56、mysql的作业

作业中要用到的两张表dept,emp,找不到原来的sql语句了,所以只有表的内容 1、选择题 (1)以下哪条语句是错误的? A. SELECT empno, ename name, sal salary FROM emp; B. SELECT empno, ename name, sal AS s…

基于Slimming的MobileNetV3半自动剪枝

本文尝试两种剪枝方法,分别是直接使用NNI工具 以及 通过Slimming方法进行硬编码。 1、剪枝的意义 深度模型落地需要权衡两个核心问题:精度和复杂度。 模型压缩加速,在保持精度基本不变、降低模型计算复杂度。一方面提升模型落地的可能性&a…

SpringBoot+Vue项目毕业论文管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

使用PowerShell获取Trustedinstaller权限

准备工作: Windows Powershell 版本为 5.0 以上 以管理员身份运行Windows Powershell(在这里可能会遇到运行X64版本而导致后续有些命令无法使用, 所以可以运行X86版本) 安装所需模块 首先在C盘(系统盘)根目录,新建名为 token 的文件夹 接着在Windows Powershell输…

html5语义元素

HTML5 提供了新的语义元素来明确一个Web页面的不同部分: <header><nav><section><article><aside><figcaption><figure><footer><header> <header>元素描述了文档的头部区域&#xff0c;<header>元素主要…

如何停用Sidekiq Uniqueness

背景是这样的&#xff1a; 你有一些Sidekiq的job,并且设置了unique_for&#xff0c;然后系统崩溃了&#xff0c;在你的redis里仍然有这个唯一性的锁&#xff0c;但是job却不见了&#xff0c;导致后面的job也进不来&#xff0c;这个时候需要手动disable这个唯一锁。 官网传送&…

骨传导耳机会伤害耳朵吗、佩戴骨传导耳机有什么好处

首先要明确的告诉大家耳机都对听力/耳朵是一定会有伤害&#xff0c;只不过是程度如何而已。目前来说&#xff0c;同等音量的情况下&#xff0c;对听力损伤最低的就是骨传导耳机。因为它是避开了脆弱的鼓膜&#xff0c;经过骨头向听神经传播声音&#xff0c;这种方法解放了双耳&…

Jvm知识点一(jvm 组成部分)

jvm 主要组成部分以及其作用 jvm 组成部分&#xff08;包含两个子系统和两个组件&#xff09; 两个子系统 Class Loader (类装载器)&#xff1a;根据给定的全限定名类名&#xff08;如java.lang.Object&#xff09;来装载class 文件到Runtime data area(运行时数据区) 中的me…

excel制表基础:规范的制表理念和思路让效率提升 上篇

今天的文章是一篇理论文章&#xff0c;没有函数技巧讲解&#xff0c;没有酷炫图表实例&#xff0c;也没有神奇的VBA教程&#xff0c;如果你想学技巧&#xff0c;那这篇文章不适合你的要求。但是如果你想让自己在使用Excel方面更加地得心应手&#xff0c;能够让构建的表格提高我…

骨传导耳机哪个品牌好?国产骨传导蓝牙耳机排名

骨传导耳机传播声音不用经过耳道的设计&#xff0c;具有保护听力以及佩戴更安全的优势&#xff0c;受到越来越多人的青睐。骨传导耳机的品牌也是越来越多&#xff0c;那么哪些骨传导耳机品牌是最好的呢&#xff1f;下面就给大家分享一下几款好用的骨传导耳机。 1、南卡Runner …