LVGL Styles

news/2024/4/24 11:41:25/文章来源:https://blog.csdn.net/u013420428/article/details/129137430

LVGL Styles

  • Get started
    • 按钮添加标签
    • 按钮添加风格
    • 滑动条值显示
  • Styles
    • Size styles
    • Background styles
    • Border styles
    • Outline styles
    • Shadow styles
    • Image styles
    • Arc styles
    • Text styles
    • Line styles

Get started

按钮添加标签

/*** @brief 按钮事件回调函数* @param e 
*/
void btn_event_cb(lv_event_t* e)
{lv_event_code_t code = lv_event_get_code(e);lv_obj_t* btn = lv_event_get_current_target(e);if (LV_EVENT_CLICKED == code) {static uint8_t cnt = 0;cnt++;lv_obj_t* label = lv_obj_get_child(btn, 0);lv_label_set_text_fmt(label, "Button:%d", cnt);}
}/*** @brief Get started demo* @param  
*/
void lv_demo_get_started(void)
{lv_obj_t * btn = lv_btn_create(lv_scr_act());lv_obj_set_size(btn, 100, 50);lv_obj_set_pos(btn, 150, 100);lv_obj_add_event_cb(btn, btn_event_cb, LV_EVENT_ALL, NULL);lv_obj_t* label = lv_label_create(btn);lv_label_set_text(label, "Button:");lv_obj_center(label);
}

在这里插入图片描述

按钮添加风格

static lv_style_t style_btn;
static lv_style_t style_btn_pressed;
static lv_style_t style_btn_red;static lv_color_t darken(const lv_color_filter_dsc_t* dsc, lv_color_t color, lv_opa_t opa)
{LV_UNUSED(dsc);return lv_color_darken(color, opa);
}static void style_init(void)
{// 创建一个简单按钮风格lv_style_init(&style_btn);lv_style_set_radius(&style_btn, 10);lv_style_set_bg_opa(&style_btn, LV_OPA_COVER);lv_style_set_bg_color(&style_btn, lv_palette_lighten(LV_PALETTE_GREY, 3));lv_style_set_bg_grad_color(&style_btn, lv_palette_main(LV_PALETTE_GREY));lv_style_set_bg_grad_dir(&style_btn, LV_GRAD_DIR_VER);lv_style_set_border_color(&style_btn, lv_color_black());lv_style_set_border_opa(&style_btn, LV_OPA_20);lv_style_set_border_width(&style_btn, 2);lv_style_set_text_color(&style_btn, lv_color_black());// 创建按下状态风格static lv_color_filter_dsc_t color_filter;lv_color_filter_dsc_init(&color_filter, darken);lv_style_init(&style_btn_pressed);lv_style_set_color_filter_dsc(&style_btn_pressed, &color_filter);lv_style_set_color_filter_opa(&style_btn_pressed, LV_OPA_20);// 创建红色风格,仅改变一些颜色lv_style_init(&style_btn_red);lv_style_set_bg_color(&style_btn_red, lv_palette_main(LV_PALETTE_RED));lv_style_set_bg_grad_color(&style_btn_red, lv_palette_lighten(LV_PALETTE_RED, 3));
}void lv_demo_get_started2(void)
{/* Initialize the style */style_init();lv_obj_t* btn = lv_btn_create(lv_scr_act());lv_obj_remove_style_all(btn);lv_obj_set_size(btn, 120, 50);lv_obj_set_pos(btn, 10, 10);lv_obj_add_style(btn, &style_btn, 0); // LV_STATE_DEFAULTlv_obj_add_style(btn, &style_btn_pressed, LV_STATE_PRESSED);/* Add a label to the button */lv_obj_t* label = lv_label_create(btn);lv_label_set_text(label, "Button");lv_obj_center(label);/* Create another button and use the red style too */lv_obj_t* btn2 = lv_btn_create(lv_scr_act());lv_obj_remove_style_all(btn2);  /* Remove the styles coming from the theme */lv_obj_set_size(btn2, 120, 50);lv_obj_set_pos(btn2, 10, 80);lv_obj_add_style(btn2, &style_btn, 0);lv_obj_add_style(btn2, &style_btn_red, 0);lv_obj_add_style(btn2, &style_btn_pressed, LV_STATE_PRESSED);lv_obj_set_style_radius(btn2, LV_RADIUS_CIRCLE, 0);label = lv_label_create(btn2);lv_label_set_text(label, "Button 2");lv_obj_center(label);}

在这里插入图片描述

滑动条值显示


static lv_obj_t* label;
static void slider_event_cb(lv_event_t* e)
{lv_obj_t* slider = lv_event_get_target(e);/* Refresh the text */lv_label_set_text_fmt(label, "%d", lv_slider_get_value(slider));lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15);
}void lv_demo_get_started3(void)
{/* Create a slider in the center of the display */lv_obj_t* slider = lv_slider_create(lv_scr_act());lv_obj_set_width(slider, 200);  /*  Set the width */lv_obj_center(slider);  /* Align to the center of the parent (screen) */lv_obj_add_event_cb(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);label = lv_label_create(lv_scr_act());lv_label_set_text(label, "0");lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15); /* Align top of the slider */
}

在这里插入图片描述

Styles

Size styles

void lv_demo_style_1(void)
{static lv_style_t style;lv_style_init(&style);lv_style_set_radius(&style, 5);/* Make a gradient */lv_style_set_width(&style, 150);lv_style_set_height(&style, LV_SIZE_CONTENT);lv_style_set_pad_ver(&style, 20);lv_style_set_pad_left(&style, 5);lv_style_set_x(&style, lv_pct(50));lv_style_set_y(&style, 80);lv_obj_t* obj = lv_obj_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);lv_obj_t* label = lv_label_create(obj);lv_label_set_text(label, "Hello");
}

在这里插入图片描述

Background styles

渐变方向:

  • LV_GRAD_DIR_VER:垂直方向
  • LV_GRAD_DIR_HOR:水平方向
void lv_demo_style_2(void)
{static lv_style_t style;lv_style_init(&style);lv_style_set_radius(&style, 5);lv_style_set_bg_opa(&style, LV_OPA_COVER);static lv_grad_dsc_t grad;grad.dir = LV_GRAD_DIR_VER; // 渐变方向grad.stops_count = LV_GRADIENT_MAX_STOPS;grad.stops[0].color = lv_palette_lighten(LV_PALETTE_GREY, 1); // 颜色1grad.stops[1].color = lv_palette_main(LV_PALETTE_BLUE); // 颜色2grad.stops[0].frac = 128; // 1~255 grad.stops[1].frac = 192; // 1~255 lv_style_set_bg_grad(&style, &grad);lv_obj_t* obj = lv_obj_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);lv_obj_center(obj);lv_obj_t* label = lv_label_create(obj);lv_label_set_text(label, "Hello");lv_obj_center(label);
}

在这里插入图片描述

Border styles

void lv_demo_style_3(void) // Border styles
{static lv_style_t style;lv_style_init(&style);/* Set a background color and a radius */lv_style_set_radius(&style, 5);lv_style_set_bg_opa(&style, LV_OPA_COVER);lv_style_set_bg_color(&style, lv_palette_lighten(LV_PALETTE_GREY, 1));/* Add border to the bottom+right */lv_style_set_border_color(&style, lv_palette_main(LV_PALETTE_BLUE));lv_style_set_border_width(&style, 5);lv_style_set_border_opa(&style, LV_OPA_50);lv_style_set_border_side(&style, LV_BORDER_SIDE_BOTTOM | LV_BORDER_SIDE_RIGHT);/* Create an object with the new style */lv_obj_t* obj = lv_obj_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);lv_obj_center(obj);}

在这里插入图片描述

Outline styles

void lv_demo_style_4(void) // Outline styles
{static lv_style_t style;lv_style_init(&style);/* Set a background color and radius */lv_style_set_radius(&style, 5);lv_style_set_bg_opa(&style, LV_OPA_COVER);lv_style_set_bg_color(&style, lv_palette_lighten(LV_PALETTE_GREY, 1));/* Add outline */lv_style_set_outline_width(&style, 2);lv_style_set_outline_color(&style, lv_palette_main(LV_PALETTE_BLUE));lv_style_set_outline_pad(&style, 8);/* Create an object with the new style */lv_obj_t* obj = lv_obj_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);lv_obj_center(obj);
}

在这里插入图片描述

Shadow styles

void lv_demo_style_5(void) // Shadow styles
{static lv_style_t style;lv_style_init(&style);/* Set a background color and a radius */lv_style_set_radius(&style, 5);lv_style_set_bg_opa(&style, LV_OPA_COVER);lv_style_set_bg_color(&style, lv_palette_lighten(LV_PALETTE_GREY, 1));/* Add a shadow */lv_style_set_shadow_width(&style, 55);lv_style_set_shadow_color(&style, lv_palette_main(LV_PALETTE_BLUE));// lv_style_set_shadow_ofs_x(&style, 10);// lv_style_set_shadow_ofs_y(&style, 20);/* Create an object with the new style */lv_obj_t* obj = lv_obj_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);lv_obj_center(obj);
}

在这里插入图片描述
设置shadow offset的效果:
lv_style_set_shadow_ofs_x(&style, 10);
lv_style_set_shadow_ofs_y(&style, 20);
在这里插入图片描述

Image styles

const uint8_t img_cogwheel_argb_map[] = {
/Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit/
0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,

}
const lv_img_dsc_t img_cogwheel_argb = {
.header.always_zero = 0,
.header.w = 100,
.header.h = 100,
.data_size = 10000 * LV_IMG_PX_SIZE_ALPHA_BYTE,
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
.data = img_cogwheel_argb_map,
};

void lv_demo_style_6(void) // Image styles
{lv_style_t style;lv_style_init(&style);/* Set a background color and a radius */lv_style_set_radius(&style, 5);lv_style_set_bg_opa(&style, LV_OPA_COVER);lv_style_set_bg_color(&style, lv_palette_lighten(LV_PALETTE_GREY, 1));lv_style_set_border_width(&style, 2);lv_style_set_border_color(&style, lv_palette_main(LV_PALETTE_BLUE));lv_style_set_img_recolor(&style, lv_palette_main(LV_PALETTE_BLUE));lv_style_set_img_recolor_opa(&style, LV_OPA_50);lv_style_set_transform_angle(&style, 300);/* Create an object with the new style */lv_obj_t* obj = lv_obj_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);LV_IMG_DECLARE(img_cogwheel_argb);lv_img_set_src(obj, &img_cogwheel_argb);lv_obj_center(obj);
}

在这里插入图片描述

Arc styles

void lv_demo_style_7(void) // Arc styles
{static lv_style_t style;lv_style_init(&style);lv_style_set_arc_width(&style, 4);lv_style_set_arc_opa(&style, LV_OPA_COVER);lv_style_set_arc_color(&style, lv_palette_main(LV_PALETTE_RED));/* Create an object with the new style */lv_obj_t* obj = lv_arc_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);lv_obj_center(obj);
}

在这里插入图片描述

Text styles

void lv_demo_style_8(void) // Text styles
{static lv_style_t style;lv_style_init(&style);lv_style_set_radius(&style, 5);lv_style_set_bg_opa(&style, LV_OPA_COVER);lv_style_set_bg_color(&style, lv_palette_lighten(LV_PALETTE_GREY, 2));lv_style_set_border_width(&style, 2);lv_style_set_border_color(&style, lv_palette_main(LV_PALETTE_BLUE));lv_style_set_pad_all(&style, 10);lv_style_set_text_color(&style, lv_palette_main(LV_PALETTE_BLUE));lv_style_set_text_letter_space(&style, 5);lv_style_set_text_line_space(&style, 20);lv_style_set_text_decor(&style, LV_TEXT_DECOR_UNDERLINE);/* Create an object with the new style */lv_obj_t* obj = lv_label_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);lv_label_set_text(obj, "Text of \n""a label");lv_obj_center(obj);}

在这里插入图片描述

Line styles

void lv_demo_style_9(void) // Line styles
{static lv_style_t style;lv_style_init(&style);lv_style_set_line_color(&style, lv_palette_main(LV_PALETTE_GREY));lv_style_set_line_width(&style, 6);lv_style_set_line_rounded(&style, true);/* Create an object with the new style */lv_obj_t* obj = lv_line_create(lv_scr_act());lv_obj_add_style(obj, &style, 0);static lv_point_t p[] = { {10, 30}, {30, 50}, {100, 0} };lv_line_set_points(obj, p, 3);lv_obj_center(obj);}

在这里插入图片描述

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

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

相关文章

网络有线无线配置

一、需求 在无线接入区内,当Lsw1的上联口出现故障时,需要通过AP1-LSw1-LSw2-LSw3的路径访问公网server3。这是因为AP1通过无线网连接到LSw1,而LSw1与LSw3之间的链路出现故障,无法直接访问公网server3。因此,流量需要通…

一文说清WMS系统与MES系统,SRM系统,ERP系统集成的好处

由于制造过程的多样性、复杂性、业务流程的多样性和复杂性,因此,制造企业的信息化系统包括WMS、SRM、MES等管理系统,但它们的管理方向却各不相同,例如WMS这个是管理仓库、 SRM是管理公司的供应商、 MES是管理车间的生产制造的等等…

决策树、随机森林、GBDT、XGBoost

文章目录 1. 引入 1.1 决策树1.2 随机森林1.3 GBDT(Gradient Boosting Decision Tree)梯度提升决策树1.4 XGBoost(eXtreme Gradient Boosting)极端梯度提升2. 代码实现 2.1 决策树&随机森林&GBDT&XGBoost 2.1.1 分类2.1.2 回归2.1.3 显示模…

SpringCloud(二)配置中心

配置中心Nacos配置中心多环境共享Nacos集群搭建Nacos配置中心 作用: 统一配置管理配置自动刷新,热更新 实现: 统一配置管理 在nacos服务端,配置管理配置列表中新建配置了解配置获取的步骤: 项目启动->读取nacos中…

全开源无加密的RuleApp文章社区APP客户端源码

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 开源无加密的文章社区客户端源码分享 RuleApp文章社区,VIP会员,写作投稿积分商城,付费模块集成,多平台兼容这是一款开源免费,界…

最全es6数组方法

1.arr.push()从后面添加元素,返回值为添加完后的数组的长度 let arr [1,2,3,4,5] console.log(arr.push(5)) // 6 console.log(arr) // [1,2,3,4,5,5]2.arr.pop()从后面删除元素,只能是一个,返回值是删除的元素 let arr [1,2,3,4,5] console.log(arr.pop())//5 …

【Kubernetes 企业项目实战】08、简化 K8s 应用部署工具 Helm V3 入门到企业实战

目录 一、Helm 介绍 1.1 Helm 是什么 1.2 Helm 解决了什么痛点 1.3 Helm 相关组件及概念 1.4 Helm v3 版本变化 1.5 总结 二、安装 Helm 2.1 下载 Helm 2.2 安装 Helm 2.3 配置国内存放 chart 仓库的地址 三、Helm 基本使用 3.1 搜索和下载 Chart 3.2 部署 chart …

Tencent OS下逻辑卷(LVM)创建和扩容

测试环境是一个虚拟机,原配置1个虚拟盘。 创建4个虚拟盘,每盘2G并挂载在虚拟主机上,启动虚拟主机开始测试。 LVM英文是Logical Volume Manager,直接翻译为逻辑卷管理。 这种磁盘管理模式比较灵活,在磁盘空间不足的时…

WSO2通过设定Role来订阅对应的Api

WSO2通过设定Role来订阅对应的Api1. Add Role And User1.0 Add Role1.1 Add User 1.2 Add Mapping2. Upload Api2.1 Upload Three Apis2.2 Inspection3. AwakeningWSO2安装使用的全过程详解: https://blog.csdn.net/weixin_43916074/article/details/127987099. 1. Add Role An…

UnRaid虚拟机安装OpenWrt软路由

文章目录0、前言1、Openwrt虚拟机安装1.1、前提,需要先在UnRaid中开启虚拟机:1.2、下载OpenWrt虚拟机镜像并上传至UnRaid共享文件夹1.3、创建OpenWrt虚拟机2、开启并设置OpenWrt虚拟机2.1、修改OpenWrt管理ip2.2、OpenWrt的上网设置0、前言 最近折腾了很…

产品未出 百度朋友圈“开演”

ChatGPT这股AI龙卷风刮到国内时,人们齐刷刷望向百度,这家在国内对AI投入最高的公司最终出手了,大模型新项目文心一言(ERNIE Bot)将在3月正式亮相,对标微软投资的ChatGPT。 文心一言产品未出,百…

江南爱窗帘十大品牌 | 窗帘的定做有哪些技巧和注意事项?

人们的家居空间中总是会有各式各样的窗帘存在的,为了使得窗帘的品质更加的过关,人们在选购时,总是会希望可以购买到高品质的。一般情况下,会采用定制这种方法去进行制作。那么,窗帘的定做有哪些注意事项?窗帘定制技巧…

公司技术团队为什么选择使用 YApi 作为 Api 管理平台?

在 2021 年 12 月份的时候我就推荐过一款软件程序员软件推荐:Apifox,当时体验了一下里面的功能确实很实用,但是当时公司有一套自己的 API 管理方案,所有 Apifox 暂时就没在内部使用。 直到最近要使用其他的 API 管理方案的时候才…

el-form表单初始化赋值表单dataForm,,校验有问题,校验必填的也校验成功了

大家好啊,今天写表单发现我直接赋值对象 导致初始化校验必填校验成功以及validator校验有误的问题我的其企业名称 在初始化的时候 竟然都校验了 并且看起来像校验成功我在点击下一步的时候validator的时候,竟然也是校验成功,也不提示必填的错误最后检查我…

Java:什么是异常?什么是异常处理?

Java中的异常处理不是一个容易的话题。初学者很难理解,即使是经验丰富的开发人员也可以花几个小时讨论应该如何抛出或处理哪些Java异常。这就是为什么大多数开发团队都有自己的一套关于如何使用它们的规则。如果你是一个团队的新手,你可能会惊讶于这些规…

Python-第十天 Python数据可视化

Python-第十天 Python数据可视化一、折线图可视化1.效果一:2020年印美日新冠累计确诊人数2. JSON格式2.1什么是JSON2.2 json格式数据转化3. pyecharts模块介绍及安装4. pyecharts快速入门4.1 折线图快速入门案例5.数据处理5.1 原始数据5.2 使用在线工具解析JSON6.绘…

基于微信公众号(服务号)实现扫码自动登录系统功能

微信提供了两种方法都可以实现扫描登录。 一种是基于微信公众平台的扫码登录,另一种是基于微信开放平台的扫码登录。 两者的区别: 微信开放平台需要企业认证才能注册(认证费用300元,只需要认证1次,后续不再需要进行缴费年审&#…

21个有用的python工具

Python是最流行的编程语言之一。 它简单、强大,并且由一个致力于开源项目的社区驱动。Python的大量使用是它如此流行的原因; 您可以免费构建软件、开发Web服务、执行数据分析和可视化以及训练机器学习模型。 Python开发工具 开发工具帮助我们构建快速可靠的Python…

为什么阳康后,感觉自己变傻了?

不少人在阳康后出现脑力下降的情况,好像脑子里被雾笼罩。脑雾并不是新名词,已经存在了十几年。以前慢性疲劳综合征患者和脑震荡患者会用它来形容自己的症状。脑雾其实是认知障碍,它可由多种原因引起。比如过度劳累、长期酗酒、缺乏睡眠、久坐…

进程内存机制及API及详解

一、进程概念 ​ 一个程序文件(program),只是一堆待执行的代码和部分待处理的数据,他们只有被加载到内存中,然后让 CPU 逐条执行其代码,根据代码做出相应的动作,才形成一个真正“活的”、动态的…