当前位置: 首页 > article >正文

LVGL(lv_textarea文本框控件)

文章目录

    • 一、`lv_textarea` 是什么?
    • 二、基本用法
      • 1. 创建 `lv_textarea` 对象
      • 2. 设置提示文字(占位符)
      • 3. 设置最大长度
      • 4. 设置密码模式(显示为\*号)
      • 5. 获取和设置内容
      • 6. 配合虚拟键盘使用(常用于触摸屏)
    • 三、常用 API 汇总
    • 四、实际应用示例
    • 五、注意事项
    • 六、典型应用场景
    • 总结


lv_textarea 是 LVGL(Light and Versatile Graphics Library)中用于实现**文本输入框(多行或单行)**的控件,通常与虚拟键盘配合使用,是用户输入内容(如用户名、密码、配置参数等)时的关键组件。


一、lv_textarea 是什么?

lv_textarea 是一个支持编辑和滚动的文本显示区域。它提供了如下功能:

  • 文本显示与换行
  • 光标显示与移动
  • 支持字符插入与删除
  • 可设置最大长度、密码模式
  • 可与虚拟键盘结合使用

二、基本用法

1. 创建 lv_textarea 对象

lv_obj_t * ta = lv_textarea_create(lv_scr_act());
lv_obj_set_size(ta, 200, 100);
lv_obj_align(ta, LV_ALIGN_CENTER, 0, 0);

2. 设置提示文字(占位符)

lv_textarea_set_placeholder_text(ta, "请输入内容...");

3. 设置最大长度

lv_textarea_set_max_length(ta, 32); // 最多输入32字符

4. 设置密码模式(显示为*号)

lv_textarea_set_password_mode(ta, true);

5. 获取和设置内容

const char *text = lv_textarea_get_text(ta);
lv_textarea_set_text(ta, "预设值");

6. 配合虚拟键盘使用(常用于触摸屏)

lv_obj_t *kb = lv_keyboard_create(lv_scr_act());
lv_keyboard_set_textarea(kb, ta);  // 关联输入框

三、常用 API 汇总

函数说明
lv_textarea_create(parent)创建文本框控件
lv_textarea_set_text()设置内容
lv_textarea_get_text()获取内容
lv_textarea_set_cursor_pos()设置光标位置
lv_textarea_set_one_line(true)设置为单行输入模式
lv_textarea_set_password_mode(true)开启密码模式(显示为 *
lv_textarea_set_placeholder_text()设置占位提示文本
lv_textarea_set_max_length(n)限制最大字符数
lv_textarea_add_char()插入字符
lv_textarea_del_char()删除字符

四、实际应用示例

void create_textarea_with_keyboard(void) {lv_obj_t *ta = lv_textarea_create(lv_scr_act());lv_obj_set_size(ta, 200, 80);lv_textarea_set_placeholder_text(ta, "请输入用户名");lv_obj_t *kb = lv_keyboard_create(lv_scr_act());lv_keyboard_set_textarea(kb, ta);lv_obj_align(kb, LV_ALIGN_BOTTOM_MID, 0, 0);
}

五、注意事项

  • lv_textarea 默认支持多行输入,如需单行模式需手动设置。
  • 结合键盘时需要明确焦点指向哪个输入框。
  • 当字符数达到最大长度后,输入无效但不会报错。

六、典型应用场景

  • 用户登录输入框(用户名/密码)
  • 配置界面输入参数(如 IP 地址、设备名等)
  • 日志编辑、搜索框等需要输入文字的界面

总结

lv_textarea 是 LVGL 中实现用户交互输入的核心控件,功能类似于桌面 GUI 中的输入框(如 Qt 的 QLineEdit/QTextEdit)。通过合理使用其密码模式、占位符、最大长度控制等功能,并配合 lv_keyboard 虚拟键盘,可以轻松实现丰富的嵌入式触控输入界面。

http://www.lryc.cn/news/2384839.html

相关文章:

  • 蓝桥杯国14 互质
  • DAO模式
  • ECharts图表工厂,完整代码+思路逻辑
  • Logback 在 Spring Boot 中的详细配置
  • 写起来比较复杂的深搜题目
  • MySQL强化关键_016_存储引擎
  • CSS:margin的塌陷与合并问题
  • 防护等级IPxx含义 -雨天充电需要防护盖吗
  • 【设计模式】责任链+模板+工程模式使用模板
  • 探索服务网格(Service Mesh):云原生时代的网络新范式
  • SQL SERVER中实现类似LEAST函数的功能,返回多列数据中的最小值
  • SymPy | 获取表达式自由变量方法与因式分解
  • 深度剖析并发I/O模型select、poll、epoll与IOCP核心机制
  • 单片机——实现交通信号灯管理
  • 数据结构 -- 交换排序(冒泡排序和快速排序)
  • 【算法】: 前缀和算法(利用o(1)的时间复杂度快速求区间和)
  • macOS 安装 PostgreSQL
  • 打破传统范式,线上 3D 画展彰显多元亮点
  • Linux系统:基础命令之 ls~pwd~cd
  • MuJoCo安装记录
  • 软件工程(八):UML类图的几种关系
  • python定时删除指定索引
  • 基于OAuth2-proxy和Keycloak为comfyui实现SSO
  • SmartSoftHelp 之 SQL Server 数据库安全备份与安全还原详解---深度优化版:SmartSoftHelp DeepCore XSuite
  • Spring 代理与 Redis 分布式锁冲突:一次锁释放异常的分析与解决
  • 【数据结构】队列的完整实现
  • 2025 全球优质 AI 产品深度测评:从通用工具到垂直领域的技术突围 —— 轻量聚合工具篇
  • Python爬虫实战:获取天气网最近一周北京的天气数据,为日常出行做参考
  • 根据YOLO数据集标签计算检测框内目标面积占比(YOLO7-10都适用)
  • Helm简介、安装、配置、使用!