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

LVGL(lv_checkbox复选框按键)

文章目录

    • 🧩 一、`lv_checkbox` 是什么?
    • ✅ 二、如何使用 `lv_checkbox`
      • 1️⃣ 创建 checkbox
      • 2️⃣ 设置或获取勾选状态
      • 3️⃣ 添加事件回调
    • 🧪 三、完整示例
    • 🎨 四、样式自定义(可选)
    • 📌 五、典型应用场景
    • ⚠️ 六、注意事项


当然可以!lv_checkbox 是 LVGL 中的复选框控件,常用于表示“开 / 关”或“已选 / 未选”的状态,允许用户选择一个或多个选项


🧩 一、lv_checkbox 是什么?

它是一个带文字的方形框,状态可以是:

  • ✅ 已勾选
  • ⬜ 未勾选
  • 🛑 禁用状态(不能点)

通常用于设置选项、表单、条款同意等场景。


✅ 二、如何使用 lv_checkbox

1️⃣ 创建 checkbox

lv_obj_t * cb = lv_checkbox_create(lv_scr_act());
lv_checkbox_set_text(cb, "我已阅读并同意");
lv_obj_align(cb, LV_ALIGN_CENTER, 0, 0);

你也可以在创建时直接设置文本(从 v8.1 起):

lv_obj_t * cb = lv_checkbox_create(lv_scr_act());
lv_label_set_text(lv_obj_get_child(cb, 1), "同意条款");

2️⃣ 设置或获取勾选状态

// 设置勾选
lv_obj_add_state(cb, LV_STATE_CHECKED);// 清除勾选
lv_obj_clear_state(cb, LV_STATE_CHECKED);// 是否已勾选?
bool is_checked = lv_obj_has_state(cb, LV_STATE_CHECKED);

3️⃣ 添加事件回调

void checkbox_event_cb(lv_event_t * e) {lv_obj_t * cb = lv_event_get_target(e);bool checked = lv_obj_has_state(cb, LV_STATE_CHECKED);const char * txt = lv_label_get_text(lv_obj_get_child(cb, 1));printf("复选框【%s】现在是:%s\n", txt, checked ? "已勾选" : "未勾选");
}lv_obj_add_event_cb(cb, checkbox_event_cb, LV_EVENT_VALUE_CHANGED, NULL);

🧪 三、完整示例

void lv_example_checkbox() {lv_obj_t * cb1 = lv_checkbox_create(lv_scr_act());lv_checkbox_set_text(cb1, "我已阅读用户协议");lv_obj_align(cb1, LV_ALIGN_TOP_LEFT, 10, 10);lv_obj_add_event_cb(cb1, checkbox_event_cb, LV_EVENT_VALUE_CHANGED, NULL);lv_obj_t * cb2 = lv_checkbox_create(lv_scr_act());lv_checkbox_set_text(cb2, "订阅邮件");lv_obj_align(cb2, LV_ALIGN_TOP_LEFT, 10, 50);lv_obj_add_event_cb(cb2, checkbox_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
}

🎨 四、样式自定义(可选)

你可以为复选框添加自定义颜色、边框等样式:

lv_obj_set_style_bg_color(cb1, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR);
lv_obj_set_style_text_color(cb1, lv_color_black(), 0);

也可以设置字体大小、对齐方式等。


📌 五、典型应用场景

场景示例
用户协议“我已阅读并同意…”
设置选项“启动时自动登录”
批量选择文件列表中多选
表单“接收通知”、“隐藏密码”

⚠️ 六、注意事项

  • lv_checkbox 只能显示一个方框和一段文字,不能像 lv_list 那样显示复杂内容。
  • 不支持单独修改 icon(可以自定义绘图或重写样式实现)。

http://www.xdnf.cn/news/413839.html

相关文章:

  • xss-lab靶场4-7关基础详解
  • 解决下拉框数据提交后回显名称不对
  • LearnOpenGL02:绘制三角形和矩形
  • 系统稳定性之技术方案
  • 处理均值的配对比较
  • 一、华为鸿蒙系统介绍
  • 计算机组成原理———CPU指令周期精讲
  • 高防云的主要优势表现在哪些方面?
  • 学习黑客5 分钟深入浅出理解Alternate Data Streams (ADS)
  • 国产大模型「五强争霸」:决战AGI,谁主沉浮?
  • Fiber
  • SQL数据库核心实用技巧总结
  • SaaS备份的必要性:厂商之外的数据保护策略
  • Ethereum Pectra 的升级
  • 在文档里如何引用在线SVG甘特图
  • 普通IT的股票交易成长史--20250512复盘
  • [计算机网络]网络层
  • 安装hadoop
  • MySQL 事务(一)
  • 01 安装CANoe
  • 运算放大器相关的电路
  • 【Python爬虫】01-Python爬虫概述
  • js相关内容
  • 实数完备性定理互证1
  • 在选择合适的实验室铁地板和铸铁试验平板,帮分析​
  • ApiPost工具详细介绍及使用教程
  • Java中String字符串
  • 【蓝桥杯嵌入式】【模块】二、LED相关配置及代码模板
  • 关于输入法重码率的计算
  • web 自动化之 Unittest 应用:测试报告装饰器断言