LVGL学习笔记9 - 标签Label

news2024/9/25 21:25:56

目录

1. 显示字符串

1.1 lv_label_set_text

1.2 lv_label_set_text_fmt

1.3 lv_label_set_text_static

2. 设置长字符串模式

3. 改变颜色

3.1 改变背景颜色和对比度

3.2 设置字符串颜色

3.2.1 设置Style的字符串颜色

3.2.2 设置对象的字符串颜色

3.2.3 局部改色


显示字符串是通过对象Label实现的。Label的Parts只有LV_LABEL_PART_MAIN。标签通过lv_label_create创建。

lv_obj_t * lv_label_create(lv_obj_t * parent)

1. 显示字符串

1.1 lv_label_set_text

void lv_label_set_text(lv_obj_t * obj, const char * text)

当参数text == NULL时,显示默认的字符串。 

1.2 lv_label_set_text_fmt

格式化显示字符串,功能类似printf。例如

lv_label_set_text_fmt(label1, "Hello World!%d", 12);

 

1.3 lv_label_set_text_static

和lv_label_set_text类似,区别是lv_label_set_text的text参数会分配在动态内存中,而lv_label_set_text_static的text参数是直接使用给定的缓冲区。

2. 设置长字符串模式

当字符串长度超过Label长度,LVGL提供5种显示模式。

enum {
    LV_LABEL_LONG_WRAP,             /**< Keep the object width, wrap the too long lines and expand the object height*/
    LV_LABEL_LONG_DOT,              /**< Keep the size and write dots at the end if the text is too long*/
    LV_LABEL_LONG_SCROLL,           /**< Keep the size and roll the text back and forth*/
    LV_LABEL_LONG_SCROLL_CIRCULAR,  /**< Keep the size and roll the text circularly*/
    LV_LABEL_LONG_CLIP,             /**< Keep the size and clip the text out of it*/
};
typedef uint8_t lv_label_long_mode_t;

void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode)

调用这个函数必须是设置Size之前。

    lv_label_set_long_mode(label1, LV_LABEL_LONG_DOT);
    lv_obj_set_size(label1, LV_PCT(100), LV_PCT(20));

LV_LABEL_LONG_WRAP - 换行,默认的模式。

LV_LABEL_LONG_DOT - 将最后3个字符替换为点。 注意当Label高度可以放下整个字符串时,字符串会先换行。

LV_LABEL_LONG_SCROLL - 水平或垂直来回滚动模式,水平方向优先级更高。

LV_LABEL_LONG_SCROLL_CIRCULAR - 水平或垂直循环滚动模式,水平方向优先级更高。

LV_LABEL_LONG_CLIP - 截断模式

 

3. 改变颜色

3.1 改变背景颜色和对比度

通过Style设置,默认对比度是0,即完全透明。

void lv_obj_set_style_bg_opa(struct _lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)

 将对比度改为128

lv_obj_set_style_bg_opa(label1, 128, 0);

默认的背景颜色是白色,即0xFFFFFF。

void lv_obj_set_style_bg_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)

 将背景颜色改为红色0xFF0000。

lv_obj_set_style_bg_color(label1, lv_color_hex(0xFF0000), 0);

3.2 设置字符串颜色

3.2.1 设置Style的字符串颜色

void lv_style_set_text_color(lv_style_t * style, lv_color_t value)

3.2.2 设置对象的字符串颜色

void lv_obj_set_style_text_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)

将颜色改为红色

lv_obj_set_style_text_color(label1, lv_color_hex(0xFF0000), 0);

3.2.3 局部改色

 首先要通过API函数lv_label_set_recolor使能局部改色功能。

lv_label_set_recolor(label1, true)

字符串中加入关键字‘#’设定颜色,语法:

#颜色 字符串#

其中颜色和字符串之间有个空格。

例如将字符串“It is a long string!”中的“It”显示为红色,其他为默认色。

lv_label_set_recolor(label1, true);
lv_label_set_text(label1, "#FF0000 It# is a long string!");

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

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

相关文章

钧瓷产业将占禹州GDP50%以上,产生千亿市值钧瓷生态型科技公司

这里的上市指沪深的主板&#xff0c;创业板和科创板&#xff0c;区域的挂牌不算。 这个数据是根据禹州钧瓷产业2022年实际税收&#xff0c;综合钧瓷产业报税幅度&#xff0c;钧瓷数据开放平台&#xff0c;钧瓷产业决策内参&#xff0c;钧瓷产业化&#xff0c; 数字化后的预期增…

【CUDA入门笔记】GPU存储结构模型(1)

GPU存储结构模型 1.CPU可以读写GPU设备中的Global Memory、Constant Memory以及Texture Memory内存储的内容&#xff1b;主机代码可以把数据传输到设备上&#xff0c;也可以从设备中读取数据&#xff1b; 2.GPU中的线程使用Register、Shared Memory、Local Memory、Global Mem…

信息时代,企业如何安全管理数据

随着企业信息化的发展&#xff0c;企业所产生的数据量也越来越多&#xff0c;企业数据的存储安全和传输安全管理工作则成为企业数据管理者的重中之重。但是对数据的保护要依靠一定的基础设施&#xff0c;目前&#xff0c;世界各国对数据保护的基础设施建设还是不够完善&#xf…

VSCode搭建ruby开发调试环境

安装rvm rvm是ruby版本管理工具&#xff0c;可以管理本地的ruby的版本 curl -sSL https://get.rvm.io | bash -s stable安装ruby 使用 rvm list known获取已知的ruby版本&#xff0c;这里安装3.0.0版本的ruby rvm install 3.0.0新建ruby文件 在VSCode中新建ruby文件main.r…

【强训】Day1

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、选择二、编程1. 组队竞赛2. 删除公共字符答案1. 选择2. 编程普通小孩也要热爱生活&#xff01; 一、选择 下列选项中属于面向对象编程主要特征的是&#xff08;&#xff09; A 继承 B 自顶向下 C 模块化 D 逐步…

【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)

目录 一、操作系统命令注入 1、意义 2、有用的命令 3、注入操作系统命令的方式 4、防止操作系统命令注入攻击 二、执行任意命令 1、示例&#xff1a; 实验1&#xff1a;操作系统命令注入&#xff08;简单&#xff09; 三、盲操作系统命令注入漏洞 1、简述 2、示例 3…

Spring Cloud 2022.0.0正式发布:OpenFeign稳得很全面迈向GraalVM

本文已被https://yourbatman.cn收录&#xff1b;女娲Knife-Initializr工程可公开访问啦&#xff1b;程序员专用网盘https://wangpan.yourbatman.cn&#xff1b;技术专栏源代码大本营&#xff1a;https://github.com/yourbatman/tech-column-learning&#xff1b;公号后台回复“…

Vector在CANdb++中关于XCP和应用报文的定义

Vector DBC规则 前文讲解了dbc有关的属性定义与编辑,本文描述在开发过程中关于XCP和应用报文有关的规则说明,方便开发人员正确配置和代码生成所需的属性及其值。 关联文章: dbc的属性定义:dbc的属性定义 Vector DBC属性定义规则:Vector DBC属性定义规则 DBC编辑问题——…

我理解的proc伪文件系统

一.概念 提供可以动态操作Linux内核信息的接口&#xff0c;实现内核空间与用户空间进行数据交换的途径。 二.观察文件内容 //crtlaltt 快速打开Linux终端 //输入一下内容 cd /proc //进入proc文件夹 ls //观察proc文件夹下的内容 cd 2414 //任意打开一个带数字的文件…

【问题解决】解决xshell7会话窗口只能显示一个的问题

这恐怕会成为最短的一篇文章 问题复现 打开多个终端&#xff0c;最终只显示最后一个 如上图&#xff1a; 再打开一个192.168.1.42 &#xff0c;会覆盖掉1.41&#xff0c;终端上先显示最后打开的那个终端。 想要解决xshell7会话窗口只能显示一个的问题&#xff0c;我们只需要…

日志系统:一条SQL更新语句是如何执行的?

前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听 DBA 同事说,…

怎么判定自己的账号有没有被限流?短视频运营推广学习日记

短视频运营推广学习日记 今天开始记录自己的学习过程&#xff0c;今天的内容是&#xff0c;怎么知道自己的账号有没有被限流&#xff1f;对比了几个方法&#xff0c;还是我赢的内容比较正常&#xff0c;限流主要是两种方式&#xff1a;作品限流和账号限流 作品限流&#xff1…

开发第一天

首先下载Binary Editor: https://www.vcraft.jp/soft/bz.html 如图所示&#xff0c;点击下载&#xff1a; 下载后解压&#xff0c;在同一个盘下创建文件夹取名为OSASK,启动Bz.exe程序并输入&#xff1a; 需要复制很多的0,一直到168000这个地址&#xff0c;得到的文件命名为he…

(九) DockerFile

DockerFile一、概述二、DockerFile构建过程2.1、Dockerfile内容基础知识2.2、Docker执行Dockerfile的大致流程2.3、小总结三、DockerFile常用保留字指令四、实操案例4.1、要求Centos7镜像具备vimifconfigjdk84.2、编写4.3、Build构建镜像4.4、虚悬镜像一、概述 Dockerfile是用来…

C++18 -- 虚析构函数构成多态、纯虚函数、抽象类、虚继承

多态的条件&#xff1a; 1&#xff09;覆盖 2&#xff09;基类的指针或者引用 虚表的运行原理&#xff1a; 一、多态的特例 – 虚析构函数构成多态 类有指针作为数据成员&#xff0c;必须要写析构函数&#xff0c;如果当前类被继承了&#xff0c;则析构函数写成virtual&#…

四旋翼无人机学习第19节--allgero的板框导入,网表导入

文章目录1 板框导入2 网表导入3 颜色修改4 修改快捷键1 板框导入 1、板框可以在小马哥课程中获取哦。 课程地址:使用Cadence17.2 OrCAD Allegro绘制小马哥DragonFly四轴飞行器 2、下载得到文件&#xff0c;然后用CAD软件查看DXF文件&#xff0c;出现弹框点击是即可(文件只读)。…

科研小白如何做好科研(内附一些科研实用工具)

目录 前言 一、了解自己的研究方向 1、知其然并知其所以然 2、那如何做到呢&#xff1f; 二、拥有良好的科研素养 1、多读文献 2、夯实基础&#xff0c;搞清原理 3、不断学习&#xff0c;擅于总结 4、团队协作&#xff0c;勤沟通&#xff0c;多交流 三、掌握一些…

RHCEansible静态主机清单

首先要做好免密登录 RHCEansible虚拟机初始化配置&#xff0c;ansible配置和安装_无所不知的神奇海螺的博客-CSDN博客 添加主机组 [rootserver ~]# vim /etc/ansible/hosts 或者 测试 [rootserver ~]# ansible node1 -m command -a hostname --- 引号里的是想要受控主机执行的…

Dell inspiron 5488加装硬盘SSD

机械盘真心便宜&#xff0c; 当数据盘很合适。 ———— 我是装双系统&#xff0c; 希望速度快&#xff01; 我就装了一个SSD&#xff0c; STAT接口的&#xff0c; 和机械盘盒一样尺寸&#xff0c; 接口都是SATA&#xff0c; 我买的三星860EVO&#xff0c; 500G&…

I06-python菜鸟教程查漏补缺

学习链接&#xff1a;Python3 教程 | 菜鸟教程 目录 1.基础知识 2.字符串 1.基础知识 多行语句&#xff1a;复数类型&#xff1a; 复数由实数部分和虚数部分构成&#xff0c;可以用 a bj&#xff0c;或者 complex(a,b) 表示&#xff0c; 复数的实部 a 和虚部 b 都是浮点型…