LVGL部件6

一.圆弧部件

1.知识概览

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.函数接口

1.lv_obj_clear_flag

在 LVGL(LittlevGL)中,lv_obj_clear_flag 函数用于清除对象的特定标志位。该函数的原型如下:

void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t flag);
  • obj 是指向要操作的对象的指针。
  • flag 是要清除的标志位,可以是以下之一或其组合:
    • LV_OBJ_FLAG_HIDDEN: 隐藏标志位,表示对象被隐藏。
    • LV_OBJ_FLAG_CLICKABLE: 可点击标志位,表示对象可以接收点击事件。
    • LV_OBJ_FLAG_SCROLLABLE: 可滚动标志位,表示对象可以滚动。
    • LV_OBJ_FLAG_DISABLED: 禁用标志位,表示对象被禁用。

以下是一个示例代码,展示如何使用 lv_obj_clear_flag 函数清除对象的标志位:

// 创建一个按钮
lv_obj_t *button = lv_btn_create(lv_scr_act(), NULL);// 设置按钮为禁用状态
lv_obj_add_flag(button, LV_OBJ_FLAG_DISABLED);// 清除按钮的禁用标志位
lv_obj_clear_flag(button, LV_OBJ_FLAG_DISABLED);

我们创建了一个按钮对象 button,使用 lv_obj_add_flag 函数将按钮设置为禁用状态,然后使用 lv_obj_clear_flag 函数清除按钮的禁用标志位,恢复按钮为可用状态。

2.lv_obj_remove_style

在 LVGL(LittlevGL)中,要从对象上移除特定样式,可以使用lv_obj_remove_style函数。该函数的原型如下:

void lv_obj_remove_style(lv_obj_t * obj, uint32_t part, uint32_t state);
  • obj 是指向要操作的对象的指针。
  • part 是要移除样式的对象部分。可以使用预定义的常量,如 LV_OBJ_PART_MAIN 表示主要部分,或者使用 LV_PART_CUSTOM 自定义部分。
  • state 是要移除样式的状态。可以使用预定义的常量,如 LV_STATE_DEFAULT 表示默认状态,或者使用自定义状态。

以下是一个示例代码,展示如何使用 lv_obj_remove_style 函数从对象上移除样式:

// 创建一个按钮
lv_obj_t *button = lv_btn_create(lv_scr_act(), NULL);// 为按钮添加一个样式
lv_btn_set_style(button, LV_BTN_STYLE_REL, &lv_style_btn_rel);// 移除按钮的 REL 样式
lv_obj_remove_style(button, LV_BTN_PART_MAIN, LV_STATE_DEFAULT);

在这个示例中,我们创建了一个按钮对象 button,然后使用 lv_btn_set_style 函数为按钮添加了一个样式。最后,我们使用 lv_obj_remove_style 函数移除了按钮的 LV_BTN_STYLE_REL 样式。

3.lv_arc_set_mode

在 LVGL(LittlevGL)中,lv_arc_set_mode 函数用于设置弧形(Arc)对象的模式。弧形对象是一个圆弧,用于显示某个值的进度或范围。该函数的原型如下:

void lv_arc_set_mode(lv_obj_t * arc, lv_arc_mode_t mode);
  • arc 是指向弧形对象的指针。
  • mode 是要设置的弧形模式,可以是以下之一:
    • LV_ARC_MODE_NORMAL: 普通模式,弧形对象显示一个进度值。
    • LV_ARC_MODE_SYMMETRICAL: 对称模式,弧形对象显示一个对称的范围值。
    • LV_ARC_MODE_ENDLESS: 无限模式,弧形对象无限循环显示进度。

以下是一个示例代码,展示如何使用 lv_arc_set_mode 函数设置弧形对象的模式:

// 创建一个弧形对象
lv_obj_t *arc = lv_arc_create(lv_scr_act(), NULL);// 设置弧形对象的模式为对称模式
lv_arc_set_mode(arc, LV_ARC_MODE_SYMMETRICAL);

在这个示例中,我们创建了一个弧形对象 arc,并使用 lv_arc_set_mode 函数将弧形对象的模式设置为对称模式。

3.代码实例

static void event_cb(lv_event_t *e)
{lv_obj_t *target=lv_event_get_target(e);  //获取触发源printf("%d\n",lv_arc_get_value(target));  //获取当前值
}void my_lvgl(void)
{lv_obj_t *arc=lv_arc_create(lv_scr_act());  //创建圆弧部件lv_obj_center(arc);lv_arc_set_range(arc,0,100);   //设置范围值lv_arc_set_value(arc,0);  //设置当前值lv_arc_set_bg_angles(arc,0,360); //设置背景弧//lv_arc_set_angles(arc,0,360);  //设置前景弧lv_arc_set_rotation(arc,270);  //设置旋转角度lv_obj_add_event_cb(arc,event_cb,LV_EVENT_VALUE_CHANGED,NULL);//添加事件,值改变触发lv_arc_set_mode(arc,LV_ARC_MODE_REVERSE);  //设置模式lv_arc_set_change_rate(arc,90);   //设置绘制速度lv_obj_remove_style(arc,NULL,LV_PART_KNOB);  //删除旋钮lv_obj_clear_flag(arc,LV_OBJ_FLAG_CLICKABLE);  //去除点击属性
}

二.线条部件

1.知识概述

在这里插入图片描述

在这里插入图片描述

2.函数接口

1.lv_obj_set_style_line_rounded

lv_obj_set_style_line_rounded 函数。该函数的原型如下:

void lv_obj_set_style_line_rounded(lv_obj_t * obj, lv_obj_part_t part, bool is_rounded);
  • obj 是指向要设置线条样式的对象的指针。
  • part 是指定要设置样式的对象部分。可以使用预定义的常量,如 LV_OBJ_PART_MAIN 表示主要部分,或者使用 LV_PART_CUSTOM 表示自定义部分。
  • is_rounded 是一个布尔值,用于指定是否将线条样式设置为圆角。true 表示应用圆角样式,false 表示使用直角样式。

以下是一个示例代码,展示如何使用 lv_obj_set_style_line_rounded 函数将对象的线条样式设置为圆角:

// 创建一个对象
lv_obj_t *obj = lv_obj_create(lv_scr_act(), NULL);// 将对象的线条样式设置为圆角
lv_obj_set_style_line_rounded(obj, LV_OBJ_PART_MAIN, true);

在这个示例中,我们创建了一个对象 obj,然后使用 lv_obj_set_style_line_rounded 函数将该对象的线条样式设置为圆角。

2.lv_line_set_y_invert

在LVGL(LittlevGL)中,可以使用 lv_line_set_y_invert 函数来设置线条对象的 Y 坐标是否翻转。该函数的原型如下:

void lv_line_set_y_invert(lv_obj_t * obj, bool y_invert);
  • obj 是指向要设置 Y 坐标翻转的线条对象的指针。
  • y_invert 是一个布尔值,用于指示是否要翻转 Y 坐标。true 表示翻转 Y 坐标,false 表示不进行翻转。

以下是一个示例代码,展示如何使用 lv_line_set_y_invert 函数来设置线条对象的 Y 坐标翻转:

// 创建一个线条对象
lv_obj_t *line = lv_line_create(lv_scr_act(), NULL);// 设置线条对象的 Y 坐标翻转
lv_line_set_y_invert(line, true);

在这个示例中,我们创建了一个线条对象 line,然后使用 lv_line_set_y_invert 函数将该线条对象的 Y 坐标翻转设置为 true

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

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

相关文章

[力扣 Hot100]Day20 旋转图像

题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 出处 思路 旋转时每四个位置为一组进行swap操作,找好对…

计算视图里的projection和aggregation节点区别

Projection 和 Aggregation到底有什么区别? 看名字就能看出来的。 那么在什么场景下用呢? 1. Projection就是投影,也就是说你本来的源里有什么,就直接给你拿出来。 除了这个,它使用的场景就是: 只映射需…

帮管客CRM 文件上传漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

TCP/IP详细介绍以及TCP/IP寻址

目录 ​编辑 1. TCP/IP 介绍 2. 计算机通信协议(Computer Communication Protocol) 3. 什么是 TCP/IP? 4. 在 TCP/IP 内部 5. TCP 使用固定的连接 6. IP 是无连接的 7. IP 路由器 8. TCP/IP 9. TCP/IP 寻址 10. IP地址 …

谷歌产品大更新:Bard可生成图像;文生音乐平台等5大免费功能

2月2日,谷歌在官网对生成式AI产品进行了大更新,包括类ChatGPT聊天助手Bard可以通过文本提示生成图像; 全新的文生音乐平台MusicFX;新的文生图像平台ImageFX;新的文本扩写平台TextFX;在谷歌地图中增加生成式…

MATLAB矩阵的操作(第二部分)

师从清风 矩阵的创建方法 在MATLAB中,矩阵的创建方法主要有三种,分别是:直接输入法、函数创建法和导入本地文件中的数据。 直接输入法 输入矩阵时要以中括号“[ ]”作为标识符号,矩阵的所有元素必须都在中括号内。 矩阵的同行元…

UnitySahder实现Phong/BlinnPhong模型

目录 Phong模型公式: BlinnPhong模型公式: 实现: Phong模型: BlinnPhong模型: Phong模型公式: 结果自发光+环境光漫反射高光反射 BlinnPhong模型公式: 对Phong模型的简单修改&…

Git―基本操作

Git ⛅认识 Git⛅安装 GitCentos(7.6)Ubuntu ⛅Git―基本操作创建本地仓库🍂配置本地仓库🍂工作区, 暂存区, 版本库🍂版本库工作区 添加文件🍂查看文件🍂修改文件🍂版本回退🍂☃️案例 撤销修改…

k8s中cert-manager管理https证书

前言 目前https是刚需,但证书又很贵,虽然阿里云有免费的,但没有泛域名证书,每有一个子域名就要申请一个证书,有效期1年,1年一到全都的更换,太麻烦了。经过搜索,发现了自动更新证书神器cert-manager;当然cert-manager是基于k8s的。 安装采用Helm方式 Chart地址: ht…

THREE.JS动态场景开发实战【赛博朋克】

在本教程中,我们将探索如何创建类似 Three.js 的赛博朋克场景,灵感来自 Pipe 网站上的背景动画。 我们将指导你完成使用 Three.js 编码动态场景的过程,包括后处理效果和动态光照,所有这些都不需要任何着色器专业知识。 我用这个场…

西瓜书学习笔记——k近邻学习(公式推导+举例应用)

文章目录 算法介绍实验分析 算法介绍 K最近邻(K-Nearest Neighbors,KNN)是一种常用的监督学习算法,用于分类和回归任务。该算法基于一个简单的思想:如果一个样本在特征空间中的 k k k个最近邻居中的大多数属于某个类别…

vue+element 换肤功能

1.首先建深色和浅色两个主题样式变量样式表,样式表名和按钮中传入的值一样,本例中起名为default.scss和dark.scss 2.在data中定义主题变量名 zTheme:‘defalut’,默认引用defalut.scss, 在点击按钮时切换引用的样式表,达到换肤效果…

结合实例谈谈SPSS多元线性回归分析结果解读与报告撰写

为研究某地区房地产市场的价格与相关影响因素之间的关系,现从该地区采集了 20 份样本,数据如下表,请给出销售价格与相关影响因素之间的函数表达式,并从统计学角度分析这些因素之间的关系,最后预测 X 小区的平均销售价格…

【洛谷学习自留】p1055 ISBN 号码

解题思路: 1.首先考虑怎么分解字符串的问题,把字符串内的数字拿出来,这里我使用了String的toCharArray方法,将字符串内的所有字符拿出来,然后针对性的把所有数字轮流用于计算,因为数组内的数字是以字符的形…

中小学电子编程内部集中培训第三课

蜂鸣器学习 可视化代码 见链接: 利用小车写蜂鸣器

北朝隋唐文物展亮相广西,文物预防性保护网关保驾护航

一、霸府名都——太原博物馆收藏北朝隋朝文物展 2月1日,广西民族博物馆与太原博物馆携手,盛大开启“霸府名都——太原博物馆北朝隋文物展”。此次新春展览精选了北朝隋唐时期150多件晋阳文物珍品。依据“巍巍雄镇”“惊世古冢”“锦绣名都”三个单元&am…

某赛通电子文档安全管理系统 UploadFileList 任意文件读取漏洞复现

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

用VsCode写python

1.创建一个文件夹 2.创建.py文件 print("Hello World") print("*"*10) 4.运行 在终端版本fileName python3 app.py

线性代数:线性方程组

目录 一、线性方程组概念 二、消元法求线性方程组 三、系数阵的秩与线性方程组的解 无解 唯一解 无数解 相关定理 一、线性方程组概念 二、消元法求线性方程组 三、系数阵的秩与线性方程组的解 无解 唯一解 无数解 相关定理

Redis -- hash哈希

马行软地易失蹄,人贪安逸易失志。 目录 关于Redis的hash hash命令 hset hget hexists hdel hkeys hvals hgetall hmget hlen hsetnx hash计数 hincrby hincrbyfloat 小结 关于Redis的hash 几乎所有的主流编程语言都提供了哈希(hash&a…