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

LVGL加载器,led和列表学习(基于正点原子)

加载器部件(lv_spinner)

        加载器部件常用于提示当前任务正在加载。

加载器部件组成部分:

主体(LV_PART_MAIN)

指示器(LV_PART_INDICATOR)

手柄(LV_PART_KNOB)

知识点1:创建加载器部件

lv_obj_t   *spinner  = lv_spinner_create( parent, spin_time, arc_length );

知识点2:设置圆弧颜色

lv_obj_set_style_arc_color( spinner, lv_color_hex(0x4a9f00), LV_PART_MAIN );        /* 设置主体圆弧颜色 */

lv_obj_set_style_arc_color( spinner, lv_color_hex(0x83bd55), LV_PART_INDICATOR );   /* 设置指示器圆弧颜色 */

知识点3:设置圆弧宽度

lv_obj_set_style_arc_width( spinner, 30, LV_PART_MAIN );                        /* 设置主体圆弧宽度 */ lv_obj_set_style_arc_width( spinner, 30, LV_PART_INDICATOR );                    /* 设置指示器圆弧宽度 */

LED部件(lv_led)

        LED部件常用于指示控制对象的状态。

主体(LV_PART_MAIN)

注意,不同版本的lvgl的led的显示不太一致。

知识点1:创建LED部件

lv_obj_t   *led = lv_led_create( parent );

知识点2:设置LED颜色、亮度

lv_led_set_color( led, lv_color_hex(0xff0000) );               /* 设置LED颜色 */

lv_led_set_brightness( led, 0 );                        /* 设置LED亮度,范围0~255*/

知识点3:设置LED状态

lv_led_on( led );                                    /* 打开LED(设置亮度为255)*/

lv_led_off( led );                                    /* 关闭LED */ lv_led_toggle( led );                            /* 翻转LED状态 */

列表部件(lv_list)

        列表部件常用于多选一的场景,默认会展现多个选项。

列表部件组成部分:

        主体(LV_PART_MAIN)

        滚动条(LV_PART_SCROLLBAR)

知识点1:创建列表部件

lv_obj_t   *list = lv_list_create( parent );

知识点2:添加列表文本

lv_list_add_text( list, “Settings" );

知识点3:添加列表按钮

lv_obj_t  *btn= lv_list_add_btn( list, LV_SYMBOL_WIFI, “WLAN");

知识点4:获取列表按钮文本

lv_list_get_btn_text( list, list_btn );

这里说一下例程两个关键函数:

 lv_obj_update_layout(obj_left);                                                 /* 手动更新物体(obj_left)的参数 */

这个函数用于更新obj的参数,以便后面获取: lv_obj_set_height(obj_right,lv_obj_get_height(obj_left));                      /* 设置高度 */

        这里就用到了obj_left,注意的是lvgl的参数不是实时更新的,如果要用到获取widgets参数,就要先调用更新物体参数,不然获取到0,就会发生错误。

static void list_btn_event_cb(lv_event_t *e)
{
    lv_obj_t *list_btn = lv_event_get_target(e);                                   /* 获取触发源 */

    lv_label_set_text(list_label, lv_list_get_btn_text(list, list_btn));           /* 获取按钮文本并显示 */
    
    lv_obj_add_state(list_btn, LV_STATE_FOCUS_KEY);                                /* 添加状态(聚焦) */
}

        这个回调函数,lv_event_get_target(e),获取触发源 ,另一个lv_event_get_code(e)是获取触发类型:长按,点击等等。第二个函数是获取列表的按钮的文本并且显示在右边的列表框内。第三个函数是添加聚焦状态,就是你选中这个选项后,会有选中的特效,比如选中那一栏底色设置为蓝色。


http://www.kler.cn/a/414384.html

相关文章:

  • 分布式搜索引擎之elasticsearch单机部署与测试
  • STL-开篇啦~
  • Qml-TabBar类使用
  • 云技术-docker
  • VsCode 插件推荐(个人常用)
  • 鸿蒙本地模拟器 模拟TCP服务端的过程
  • Django websocket 进行实时通信(消费者)
  • 第32周:猴痘病识别(Tensorflow实战第四周)
  • GitLab历史演进
  • 组成无重复数字的三位数
  • 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。-多语言
  • 第02章 使用VMware部署CENTOS系统
  • SqlServer强制转换函数TRY_CONVERT和TRY_CAST
  • “小bug”示例
  • 一款现代化的轻量级跨平台Redis桌面客户端
  • 大数据机器学习算法与计算机视觉应用05:乘法权重算法
  • 【第十二课】Rust并发编程(三)
  • NodeFormer:一种用于节点分类的可扩展图结构学习 Transformer
  • 修改element UI el-table背景颜色样式 input select date vuetree
  • 如何在 IIS 上部署 .NET Core 应用程序 ?
  • 基于 Flask 和 Socket.IO 的 WebSocket 实时数据更新实现
  • 常用Python集成开发环境(IDE)
  • 基于FPGA的SD NAND读写测试(图文并茂+源代码+详细注释)
  • ISIS SSN/SRM 标志在 P2P 链路和 Broadcast 链路中的作用
  • Python全局解释器锁(GIL)深度解析
  • 现代化水库可视化管理平台:提升水库运行效率与安全保障