LVGL学习笔记15 - 文本框TextArea

news2024/11/27 21:53:40

目录

1. Parts

2. 样式

2.1 修改背景bg

2.2 修改边界border

2.3 修改文本

2.3.1 lv_textarea_add_char

 2.3.2 lv_textarea_add_text

 2.3.3 lv_textarea_set_text

2.3.4 设定可输入的字符

2.3.5 删除字符

2.3.6 设定字符串最大长度

2.4 滚动条

2.4.1 滚动方向

 2.4.2 设置颜色

2.5 密码输入模式

2.6 设置字符串对齐模式


文本框由一个Label和一个光标组合而成,用于文本输入。通过lv_textarea_create创建对象。

static lv_obj_t* obj1 = lv_textarea_create(lv_scr_act());
lv_obj_set_size(obj1, LV_PCT(30), LV_PCT(10));
lv_obj_align(obj1, LV_ALIGN_CENTER, 0, 0);

1. Parts

LV_PART_MAIN: 文本框的背景。类似Button的样式设置。

LV_PART_SCROLLBAR: 文本内容过长时显示的滚动条。

LV_PART_SELECTED: 文本的样式,只能使用 text_color 和 bg_color 样式属性。

LV_PART_CURSOR:字符插入位置的光标。光标的区域始终是当前字符的边界框。可以通过 anim_time 样式属性设置光标的闪烁时间。

LV_PART_TEXTAREA_PLACEHOLDER:文本占位符,文本框独有的部分。可以通过这部分设置文本占位符的样式。

2. 样式

2.1 修改背景bg

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

lv_obj_set_style_bg_opa(obj1, LV_OPA_50, LV_PART_MAIN);

2.2 修改边界border

lv_obj_set_style_border_color(obj1, lv_color_hex(0xFF0000), LV_PART_MAIN);

注意这里的蓝色框是选中框。

2.3 修改文本

添加文本的方式有:lv_textarea_add_char/lv_textarea_add_text/ lv_textarea_set_text三种方式。

2.3.1 lv_textarea_add_char

这个API只能添加一个字符(char),功能是在原有的字符串中光标位置添加一个字符

lv_textarea_add_char(obj1, 'a');

 2.3.2 lv_textarea_add_text

 功能是在原有的字符串中光标位置添加一个字符串

lv_textarea_add_text(obj1, "abc");

 

 2.3.3 lv_textarea_set_text

功能是将文本框的字符串改为新的字符串

lv_textarea_add_text(obj1, "abc");
lv_textarea_set_text(obj1, "def");

2.3.4 设定可输入的字符

通过lv_textarea_set_accepted_chars设置可输入的字符,例如只能输入数字

lv_textarea_set_accepted_chars(obj1, "0123456789");

2.3.5 删除字符

通过lv_textarea_del_char删除光标前的一个字符

lv_textarea_set_text(obj1, "def");
lv_textarea_del_char(obj1);

2.3.6 设定字符串最大长度

通过lv_textarea_set_max_length设置最大长度。

lv_textarea_set_max_length(obj1, 5);
lv_textarea_set_one_line(obj1, true);
lv_textarea_add_text(obj1, "It is a long string, try scroll function");

 

2.4 滚动条

当字符串很长时,字符串会换行(默认),并增加一个滚动条显示。

2.4.1 滚动方向

通过lv_textarea_set_one_line将字符串显示设置为一行显示,这样滚动条会变为水平方向。

lv_textarea_set_one_line(obj1, true);
lv_textarea_add_text(obj1, "It is a long string, try scroll function");

 

 2.4.2 设置颜色

lv_textarea_set_one_line(obj1, true);
lv_textarea_add_text(obj1, "It is a long string, try scroll function");
lv_obj_set_style_bg_color(obj1, lv_color_hex(0xFF0000), LV_PART_SCROLLBAR);

2.5 密码输入模式

通过lv_textarea_set_password_mode设置为密码输入模式,此时输入的字符会变为点。

lv_textarea_set_password_mode(obj1, true);

可以通过lv_textarea_set_password_show_time设置输入字符明显的时间,参数时间是毫秒为单位。

lv_textarea_set_password_show_time(obj1, 2000);

2.6 设置字符串对齐模式

通过lv_textarea_set_align设置对齐模式,3种模式:LV_TEXT_ALIGN_LEFT、LV_TEXT_ALIGN_RIGHT和LV_TEXT_ALIGN_CENTER。默认是LEFT。

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

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

相关文章

RHCE学习笔记-133-1

RH133-01 installation 光盘引导后,在提示符下输入:linux askmethod 可以支持:local cdrom,hard drive,nfs image,ftp,http方式 cpu on x86 2个物理超线程CPU 使用smp or hugemem kernel可以支持 32个物理cpus 内存 标准x86 kernel 4G smp i686/athlon kernel 16G hugemem SMP …

创建新分支,基于某一分支创建新分支,git push --set-upstream origin

背景: 基于hcc1.2的开发分支拉去hcc_hotfix_1.2.0分支,解读:在仓库中基于某个分支,创建一个新的分支 做法(解决): 1、第一步:git branch hcc_hotfix_1.2.0 2、第二步:g…

葡萄城邀您参与「表格技术开发者新年分享会」,共话表格技术新未来!

数据资产是企业最重要的资产之一,表格也是企业最普遍的数据整理手段。在数字经济时代,各行业飞速发展,拥抱数字化、进行数字化升级已成为大势所趋,企业对协同办公、大数据分析、表格智能化应用等领域的需求也呈爆发式增长&#xf…

GrapeCity Documents Image Viewer JavaScript Crack

GrapeCity Documents Image Viewer 是跨平台 JavaScript 图像查看器 允许用户使用我们的 JavaScript 图像查看器在您的 Web 应用程序中查看和编辑图像。采集 by Ω578867473 支持多种图像格式 适用于所有现代浏览器和框架,包括 Edge、Chrome、Firefox、Opera、Saf…

【UE4 第一人称射击游戏】33-创建一个小地图

上一篇:【UE4 第一人称射击游戏】32-添加击杀AI的提示功能(使用到控件蓝图的动画功能)本篇效果:可以看到左上角完成了小地图的制作步骤:打开名为“FPSHUD”的控件蓝图,拖入一个图像控件,表示迷你…

Diffusion 和Stable Diffusion的数学和工作原理详细解释

扩散模型的兴起可以被视为人工智能生成艺术领域最近取得突破的主要因素。而稳定扩散模型的发展使得我们可以通过一个文本提示轻松地创建美妙的艺术插图。所以在本文中,我将解释它们是如何工作的。 扩散模型 Diffusion 扩散模型的训练可以分为两部分: 正向扩散→在图…

输出全排列(C++版)

目录 输出全排列 一、问题描述 二、运行环境说明 ​三、代码段 四、效果展示 输出全排列 备注:大二(上)数据结构课程设计A题 一、问题描述 请编…

我是如何利用cps平台赚钱的?

你好,我是你们熟悉而又陌生的好朋友梦龙,一个创业期的年轻人 今天跟你做个分享,众所周知互联网是一块非常大的蛋糕,几位互联网巨头也做不到完全吃透,这次梦龙给你分享的是实际的经验,实际的案例分享。 最开…

Spring存储和读取对象 -- 2

Spring存储和读取对象 -- 2前言一、存储 Bean 对象1.1 前置工作:配置扫描路径 (重要)1.2 添加注解存储 Bean 对象1.2.1 五大类注解Bean 命名规则1.2.2 方法注解 BeanBean 命名规则与重命名二、获取 Bean 对象 (对象注入)2.1 属性注入优点分析缺点分析2.2 Setter 注入…

如何在Jetbrain Rider中使用EntityFrameWork (Core) 命令行,如添加迁移和更新数据库

在Visual Studio中,EntityFrameWork命令如Add-Migration和Update-Database通常在包管理器控制台中运行。这在Visual Studio中工作得很好,但不幸的是,它不是可移植的。这些命令是基于powershell的,并且包管理器控制台绑定了Visual …

开源的文档型数据库--MongoDB(安装)

1、简介 MongoDB 是一个开源的、文档数据库管理系统。它提供了高性能、高可扩展性和高可用性。 MongoDB 使用了一种称为 BSON 的二进制形式的 JSON 来存储数据。这使得 MongoDB 可以轻松地存储各种数据类型,包括大型对象和二进制文件。 MongoDB 的一个重要特性是它的…

多线程1.

多线程1 1.如果想对地址空间的堆区做更细腻化的空间管理,怎么办? 搞一个vim_area_struct,他是一个双向链表。每一个节点是一块堆区空间,用链表串起来。 2.如何管理物理内存? 设定一个数据结构,如&#x…

电子会议桌牌

产品特色: 低功耗,常规使用3-5年电池寿命支持空中唤醒,刷新快速,几秒钟内看到结果点阵电子纸屏幕,视角接近180基于Web的应用界面,支持跨平台操作安装简单,快速布置电池供电不需要布线双面显示&…

神经网络模型的参数量和FlOPS

一、FLOPS、FLOPs和GFLOPs的概念 FLOPS:注意S是大写,是 “每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正…

重装系统把所有盘格式化教程

在使用电脑的过程中,可能会遇到系统重装的问题,但是有些朋友就觉得之前的分区不太合理,就打算全盘格式化重装系统,那小白一键重装系统怎么把所有盘格式化呢?这需要借助U盘或光盘来引导了。下面就来看看操作教程吧。 工具/原料&a…

2.17 STM32 SysTick—系统定时器

文章目录1、简介2、寄存器2.1 SysTick控制和状态寄存器(STK_CTRL)2.2 重载值寄存器(STK_LOAD)2.3 SysTick当前值寄存器 (STK_VAL)2.4 校准寄存器(STK_CALIB)3、SysTick 定时实验3.1 在标准库中3.2 在HAL库中的初始化4、SysTick 定…

driftingblues7靶机(eyes of network漏洞)

环境准备 靶机链接:百度网盘 请输入提取码 提取码:49by 虚拟机网络链接模式:桥接模式 攻击机系统:kali linux 2021.1 信息收集 1.arp-scan -l 2.探测靶机开放端口和服务情况 nmap -p- -A -T4 192.168.1.108 漏洞利用 1.访…

为什么开发者这么看重SQL?看完这些应用场景你就明白了

看到一个有趣的比喻,用来说明SQL与Excel的差别是什么。 如果把SQL比作火车,把Excel更比作卡车。 卡车灵活自由,高速或乡村小道想去哪就去哪,但即便每天不停歇卡车的运载量也不大,而且容易出交通事故。 火车运载量大…

P2P中的NAT穿越(打洞)方案详解

1、内容概述 P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式(如下图“P2P结构模型”所示)有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信、实时文件传输甚至文字聊天等…

【Python基础】篇四之while、for循环及其嵌套、continue、break

while循环基本格式:while 条件:条件满足时做的事1条件满足时做的事2条件满足时做的事省略注:只要条件满足就会一直执行while的条件需得到布尔类型,True表示循环继续,False表示循环结束需要设置循环终止条件&#xff0c…