LVGL_基础控件label

LVGL_基础控件label

1、创建一个基础对象
/* 创建一个基础对象 label */
lv_obj_t * label = lv_label_create(lv_scr_act());   // 创建一个label部件(对象),他的父对象是活动屏幕对象
2、设置显示内容
char * text = "www.100ask.net";   // 要显示的文字
/* 展示文字 */
/* 设置要显示的文本,函数中会另外开辟和给定的字符串大小的空间存放字符串(常用) */
lv_label_set_text(label, text);
lv_label_set_text(label, "www.100ask.net"); // 也可以这样使用
/* 设置要显示的文字,也会另外开辟空间存放字符串,但是可以像 printf 格式化字符串 */
lv_label_set_text_fmt(label, "%s: %d", "Value", 15);
/* 设置要显示的文字,直接使用给定的缓冲区(不常用) */
lv_label_set_text_static(label, text);
lv_label_set_text_static(label, "www.100ask.net"); // 也可以这样使用
/*换行用法*/
lv_label_set_text_static(label, "label1\nlabel2\n");
3、控件的设置

在这里插入图片描述
lv_label_set_long_mode(label,LV_LABEL_LONG_WRAP);//默认
说明:会自动根据显示内容调整label控件的大小
在这里插入图片描述
lv_label_set_long_mode(label,LV_LABEL_LONG_DOT);//显示不全的显示三个点的省略号
在这里插入图片描述
lv_label_set_long_mode(label,LV_LABEL_LONG_CLIP);//多余的超出label部分就直接不显示
注意:在使用这种模式的时候不能使用lv_label_set_text_static(label, “www.100ask.net”);来设定显示内容了,因为用这种方式显示的文字内容是存放在只读存储区域的无法对字符串进行修改。
在这里插入图片描述

/*设置label控件的大小*/
lv_obj_set_width(label,50);
lv_obj_set_height(label,50);
/*设置显示位置*/
lv_obj_center(label);
lv_label_set_long_mode(label,LV_LABEL_LONG_WRAP);//默认
/*文学跑马灯显示*/
lv_label_set_long_mode(label,LV_LABEL_LONG_SCROLL_CIRCULAR);//向一个方向滚动
4、设置文字大小,字号
/* 设置文字字号(内置ASCII字库) */
/* 使用其他字号的字体,如果不设置默认使用 lv_font_montserrat_14 ,在 lv_conf.h 中 LV_FONT_DEFAULT 定义 */
lv_obj_set_style_text_font(label, &lv_font_montserrat_28, 0);  // 为了方便,这里使用本地(私有)样式
5、设置文字背景颜色
lv_obj_set_style_bg_color(label,lv_color_hex(0xf7b37b),0);//注意:需要设置透明度,默认是100%,所以直接修改颜色不生效
lv_obj_set_style_bg_opa(label,80,0);
6、设置文字颜色
lv_obj_set_style_text_color(label,lv_color_hex(0xf7b37b),0);
7、设置文字显示不同的颜色

在这里插入图片描述

lv_label_set_recolor(label, true);
lv_label_set_text(label, "#0000ff Re-color# #ff00ff words# #ff0000 of a# label");
8、模拟PC选中文本

在这里插入图片描述

/*选中1~6位置的字符*/
lv_label_set_text_sel_start(label, 1);
lv_label_set_text_sel_end(label, 6);
9、利用label控件显示小图标

在这里插入图片描述
在这里插入图片描述

lv_label_set_text(label, LV_SYMBOL_OK);	            // 直接显示图标

在这里插入图片描述

lv_label_set_text(label, LV_SYMBOL_OK "Apply");	// 图标与字符串一起使用

在这里插入图片描述

lv_label_set_text(label, LV_SYMBOL_OK LV_SYMBOL_WIFI LV_SYMBOL_PLAY);// 多个图标一起使用
10、事件处理
/* 让 label 可以响应输入事件 */
lv_obj_add_flag(label, LV_OBJ_FLAG_CLICKABLE);//默认label控件是没有事件的,必须要运行这一句才有用
lv_obj_add_event_cb(label, label_event_cb, LV_EVENT_ALL, 0);static void label_event_cb(lv_event_t * e)
{lv_obj_t * obj = lv_event_get_target(e);        // 获取触发事件的部件(对象)lv_event_code_t code = lv_event_get_code(e);    // 获取当前部件(对象)触发的事件代码switch(code){case LV_EVENT_PRESSED:printf("LV_EVENT_PRESSED\n");break;case LV_EVENT_LONG_PRESSED:printf("LV_EVENT_LONG_PRESSED\n");break;default://printf("NONE\n");break;}
}
11、显示汉字

本身LVGL就自带一个常用汉字库,大约有1000个常用汉字,可以作为简单的只用,首先打开这个宏定义,然后就直接可以只用啦
在这里插入图片描述
在这里插入图片描述

//可以看到问和网就没有显示出来,是因为自带的字库中没有这两个字
/* 创建一个基础对象 label */
lv_obj_t * label = lv_label_create(lv_scr_act());                           // 创建一个label部件(对象),他的父对象是活动屏幕对象
//lv_obj_set_style_text_font(label, &lv_font_montserrat_30, 0); 
lv_obj_set_style_text_font(label, &lv_font_simsun_16_cjk, 0);               // 使用内置的 cjk 字库lv_label_set_text(label, "百问网嵌入式abcd123.,<>';'[]ABCD");             // 显示文字(注意当前文件文本的编码格式,要使用 utf-8 编码)
12、使用自定义字库

在这里插入图片描述

http://lvgl.100ask.net/8.1/tools/fonts-zh-source.html
https://lvgl.io/tools/fontconverter

在这里插入图片描述
在这里插入图片描述
把自己建立的字体加入工程中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

/* 创建一个基础对象 label */
lv_obj_t * label = lv_label_create(lv_scr_act());       	// 创建一个label部件(对象),他的父对象是活动屏幕对象
LV_FONT_DECLARE(lv_font_test);                         		// 声明外部字库
lv_obj_set_style_text_font(label, &lv_font_test, 0);
lv_label_set_text(label, "百问网嵌入式abcd123.,<>';'[]ABCD");// 显示文字(注意当前文件文本的编码格式,要使用 utf-8 编码)

在这里插入图片描述

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

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

相关文章

postgresql新特性之Merge

postgresql新特性之Merge 创建测试表测试案例 创建测试表 create table cps.public.test(id integer primary key,balance numeric,status varchar(1));测试案例 官网介绍 merge into test t using ( select 1 id,0 balance,Y status) s on(t.id s.id) -- 当匹配上了,statu…

Spring Cloud Loadbalancer 实现客户端负载均衡

针对 ribbon 负载均衡组件&#xff0c; 官方提出的替换解决方案是 Spring Cloud Loadbalancer。本次主要通过学习示例介绍了 Spring Cloud Loadbalancer 的基础使用。 1&#xff0c;引入pom <dependency><groupId>org.springframework.cloud</groupId><…

Spring Webflux HttpHandler源码整理

HttpHandler的构造 自动启动配置类&#xff1a;HttpHandlerAutoConfigurationBean public HttpHandler httpHandler(ObjectProvider<WebFluxProperties> propsProvider) {HttpHandler httpHandler WebHttpHandlerBuilder.applicationContext(this.applicationContext).…

无状态自动配置 DHCPv6无状态配置 DHCPv6有状态配置

1、无状态自动配置 配置命令 AR1 ipv6 #开启路由器ipv6报文转发功能 interface GigabitEthernet0/0/0 ipv6 enable #开启路由器接口IPv6报文转发功能 ipv6 address FC01::1/64 …

力扣-367.有效的完全平方数

暴力 class Solution { public:bool isPerfectSquare(int num) {for(long i 1; i * i < num; i) {if(i * i num) return true;}return false;} };二分查找 class Solution { public:bool isPerfectSquare(int num) {int left 1, right num;while(left < right) {in…

免费app签名分发平台应用cdn分发平台为什么会免费?商业分析他的盈利模式

近年来&#xff0c;随着移动应用的迅速发展&#xff0c;免费app签名分发平台和应用CDN分发平台日益受到开发者和用户的关注。本报告旨在分析这些平台的商业模式&#xff0c;探讨其利润点、营销点以及所采取的优势。 一、商业模式分析&#xff1a; 广告收入&#xff1a; 免费a…

找不到msvcp110.dll是什么意思?总结msvcp110.dll丢失修复方法分享

随着电脑技术的不断发展&#xff0c;我们也会遇到各种各样的问题。最近&#xff0c;我就遇到了一个问题&#xff1a;电脑丢失msvcp110.dll的困扰。这个问题让我深感无奈&#xff0c;但同时也让我学到了很多关于电脑维修和系统修复的知识。在这篇文章中&#xff0c;我将分享我的…

SQL与关系数据库基本操作

SQL与关系数据库基本操作 文章目录 第一节 SQL概述一、SQL的发展二、SQL的特点三、SQL的组成 第二节 MySQL预备知识一、MySQL使用基础二、MySQL中的SQL1、常量&#xff08;1&#xff09;字符串常量&#xff08;2&#xff09;数值常量&#xff08;3&#xff09;十六进制常量&…

Java之并发工具类的详细解析

3. 并发工具类 3.1 并发工具类-Hashtable Hashtable出现的原因 : 在集合类中HashMap是比较常用的集合对象&#xff0c;但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证数据的安全性我们可以使用Hashtable&#xff0c;但是Hashtable的效率低下。 代码实现 …

Unity ddx与ddy

有关Unity的dx与dy的概念 引用的文章 1link 2link 3link 4link 有关概念 我们知道在光栅化的时刻&#xff0c;GPUs会在同一时刻并行运行很多Fragment Shader&#xff0c;但是并不是一个pixel一个pixel去执行的&#xff0c;而是将其组织在2x2的一组pixels分块中&#xff0c;…

nginx负载转发源请求http/https:X-Forwarded-Proto及nginx中的转发报头

今天在排查服务器的问题时最后定位到服务器因为经过了运维这一层的处理&#xff0c;转发过来的请求不管用户请求的是https还是http&#xff0c;我们的proxy服务器收到的都是80端口上的http。于是联系相关部门了解有没有现成的可用的这样一个字段来获得这个值。公司用的也是标准…

RabbitMQ-第四种交换机类型

接上文 RabbitMQ-主题模式 1 第四种交换机类型 header:它是根据头部信息来决定的&#xff0c;在我们发送的消息中是可以携带一些头部信息的&#xff0c;类似与HTTP&#xff0c;我们可以根据这些头部信息来决定路由到哪一个消息队列中。 修改配置类内容 Configuration public…

《存储IO路径》-进程、线程和任务的区别

在Linux IO系统架构中&#xff0c;我们经常会听到进程、线程、任务、jbobs&#xff0c;QD&#xff0c;这些词汇常常会有一些模糊和混淆&#xff0c;本文我们主要对比下这几个概念的区别。 我们来看看这些术语在Linux IO路径中的角色&#xff1a; Process&#xff08;进程&…

写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。

题目要求&#xff1a; 写一个宏&#xff0c;可以将一个整数的二进制位的奇数位和偶数位交换。 思考内容&#xff1a; 怎么确定一个二进制数位的奇数位和偶数位?且这个位上的是0还是1&#xff1f; 假设&#xff1a; 数字 13 的二进制数位 0000 0000 0000 0000 0000 0000 00…

软考 系统架构设计师系列知识点之软件架构风格(6)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之软件架构风格&#xff08;5&#xff09; 这个十一注定是一个不能放松、保持“紧”的十一。由于报名了全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff0c;11月4号就要考试&#xff0c;因此…

触摸TP,gt9xx调试分享

板子&#xff1a;rk3568 平台&#xff1a;android11 1.添加驱动 驱动文件列表&#xff1a; -rw-rw-r-- 1 vtlk vtlk 17979 10月 20 14:04 goodix_tool.c -rw-rw-r-- 1 vtlk vtlk 965 7月 11 16:52 GT9110P(2020)V71_Config_20201028_170326.cfg -rw-rw-r-- 1 vtlk vtl…

uni跳转页面不缓存上一个页面的方法

一、前言 要实现一个需求&#xff0c;从a页面跳转到b页面&#xff0c;从b页面跳转到c页面&#xff0c;然后按返回&#xff0c;从c页面直接返回a页面&#xff08;不返回b页面&#xff09; a->b->c c->a 二、实现方法 前端框架使用的是uni-app&#xff0c;我们修改…

【重拾C语言】四、循环程序设计(后判断条件循环、先判断条件循环、多重循环;典例:计算平均成绩、打印素数、百钱百鸡问题)

目录 前言 四、循环程序设计 4.1 计算平均成绩——循环程序 4.1.1 后判断条件的循环 a. 语法 b. 典例 4.1.2 先判断条件的循环 a. 语法 b. 典例 4.1.3 for语句 a. 语法 b. 典例 4.2 计算全班每人平均成绩—多重循环 4.2.1 打印100以内素数 4.2.2 百钱百…

一键智能视频编辑与视频修复算法——ProPainter源码解析与部署

前言 视频编辑和修复确实是随着电子产品的普及变得越来越重要的技能。有许多视频编辑工具可以帮助人们轻松完成这些任务如&#xff1a;Adobe Premiere Pro&#xff0c;Final Cut Pro X&#xff0c;Davinci Resolve&#xff0c;HitFilm Express&#xff0c;它们都提供一些视频修…

小谈设计模式(13)—外观模式

小谈设计模式&#xff08;13&#xff09;—外观模式 专栏介绍专栏地址专栏介绍 外观模式主要目的角色分析外观&#xff08;Facade&#xff09;角色子系统&#xff08;Subsystem&#xff09;角色客户端&#xff08;Client&#xff09;角色 工作原理核心思想总结简化接口解耦客户…