LVGL学习笔记15 - 文本框TextArea

目录

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。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值