一. LVGL GUI滚轮控件的概念

Roller 允许您通过滚动简单地从多个选项中选择一个选项。

二. LVGL GUI滚轮小部件和样式

滚轮的主要部分称为 LV_ROLLER_PART_BG 。它是一个矩形,并使用所有典型的背景属性。Roller标签的样式继承自背景的文本样式属性。要调整选项之间的间距,请使用 text_line_space 样式属
性。该填充样式属性设置两侧的空间。中间的选定选项可通过 LV_ROLLER_PART_SELECTED 虚拟小部件引用。除了典型的背景属性外,它还
使用文本属性来更改所选区域中文本的外观。

三. LVGL GUI滚轮控件的使用

1. 设置选项(Set options)

通过这个函数来设置滚动条的选项lv_roller_set_options(roller, options, LV_ROLLER_MODE_NORMAL/INFINITE)

通过这个函数来设置选择的选项lv_roller_set_selected(roller, id, LV_ANIM_ON/OFF)

写个程序验证下:可以看到id5就是June

void lvgl_roller_set_option_test(void)
{lv_obj_t* roller1 = lv_roller_create(lv_scr_act(), NULL);lv_roller_set_options(roller1,"January\n""February\n""March\n""April\n""May\n""June\n""July\n""August\n""September\n""October\n""November\n""December",LV_ROLLER_MODE_INFINITE);lv_obj_align(roller1, NULL, LV_ALIGN_CENTER, 0, 0);lv_roller_set_selected(roller1, 5, LV_ANIM_ON);
}

2. 获取当前选项(Get selected option)

用这个函数来获取当前选项的ID,lv_roller_get_selected(roller)

用这个选项来获取当前选项的文本字符串,lv_roller_get_selected_str(roller, buf, buf_size)

此部分我们不写代码了,跟Event一起写!

3. 对齐选项(Align the options)

用这个函数来设置选项的对齐方式lv_roller_set_align(roller, LV_LABEL_ALIGN_LEFT/CENTER/RIGHT)

4. 可见行(Visible rows)

用这个函数来设置滚轮控件显示的行数lv_roller_set_visible_row_count(roller, num)

我们来写一个测试一下,创建两个滚轮控件,一个是默认的,一个设置为可见10行

void lvgl_roller_visible_raw_test(void)
{lv_obj_t* roller1 = lv_roller_create(lv_scr_act(), NULL);lv_roller_set_options(roller1,"January\n""February\n""March\n""April\n""May\n""June\n""July\n""August\n""September\n""October\n""November\n""December",LV_ROLLER_MODE_INFINITE);lv_obj_align(roller1, NULL, LV_ALIGN_CENTER, -100, -200);lv_obj_t* roller2 = lv_roller_create(lv_scr_act(), NULL);lv_roller_set_options(roller2,"January\n""February\n""March\n""April\n""May\n""June\n""July\n""August\n""September\n""October\n""November\n""December",LV_ROLLER_MODE_INFINITE);lv_obj_align(roller2, NULL, LV_ALIGN_CENTER, 100, -200);lv_roller_set_visible_row_count(roller2,10);
}

5. 动画时间(Animation time)

用这个函数来设置动画时间lv_roller_set_anim_time(roller, anim_time)

6. 事件(Event)

除了通用事件外,滚轮控件还有以下特殊事件

LV_EVENT_VALUE_CHANGED sent when a new option is selected

我们写个程序结合获取当前选项来看下

static void roller_event_test_handler(lv_obj_t* obj, lv_event_t event)
{if (event == LV_EVENT_VALUE_CHANGED) {char buf[32];lv_roller_get_selected_str(obj, buf, sizeof(buf));printf("Selected month: ID:%d Text:%s\n", lv_roller_get_selected(obj), buf);}
}void lvgl_roller_event_test(void)
{lv_obj_t* roller1 = lv_roller_create(lv_scr_act(), NULL);lv_roller_set_options(roller1,"January\n""February\n""March\n""April\n""May\n""June\n""July\n""August\n""September\n""October\n""November\n""December",LV_ROLLER_MODE_INFINITE);lv_roller_set_visible_row_count(roller1, 4);lv_obj_align(roller1, NULL, LV_ALIGN_CENTER, 0, 0);lv_obj_set_event_cb(roller1, roller_event_test_handler);
}

好了,完结了,更多精彩继续戳↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

LVGL『Roller滚轮控件』介绍相关推荐

  1. 嵌入式GUI LVGL『Tableview选项卡控件』介绍

    一. LVGL GUI开关控件的概念 选项卡视图对象可用于组织选项卡中的内容. 二. LVGL GUI开关小部件和样式 Tab 视图对象包含几个部分.主要是 LV_TABVIEW_PART_BG .它 ...

  2. 制作一个GUI仪表盘,安排!LVGL『Gauge仪表盘控件』介绍

    一. LVGL GUI仪表盘控件的概念 仪表盘是一种带有刻度标签和一根或多根针的仪表.比如车速/车转速等 二. LVGL GUI仪表盘小部件和样式 量规的主要部分称为 LV_GAUGE_PART_MA ...

  3. GUI怎么能缺少列表, LVGL『List列表控件』介绍

    一. LVGL GUI列表控件的概念 列表是从背景页面和其上的按钮构建的.按钮包含一个可选的类似图标的图像(也可以是一个符号)和一个 Label.当列表足够长时,可以滚动它. 二. LVGL GUI列 ...

  4. 想做输入法界面?安排,LVGL『keyboard键盘控件』介绍

    一. LVGL GUI键盘控件的概念 Keyboard 对象是一个特殊的 Button 矩阵,具有预定义的按键映射和其他功能,以实现虚拟键盘来编写文本. 二. LVGL GUI键盘小部件和样式 类似于 ...

  5. 肝一个嵌入式日历吧!LVGL『Calendar日历控件』介绍

    一. LVGL GUI日历控件的概念 LVGL做的日历空间还是比较好看的,而且需要我们做的事情很少,LVGL的日历控件有以下功能 突出显示当天 突出显示任何用户定义的日期 显示日期名称 单击按钮进入下 ...

  6. LVGL『Canvas画布控件』介绍

    一. LVGL GUI画布控件的概念 画布继承自图像,用户可以在其中绘制任何内容.可以使用 lvgl 的绘图引擎在此处绘制矩形,文本,图像,圆弧.除了一些"效果",还可以应用,例如 ...

  7. 类似PS的蒙版?可以实现,LVGL『Object mask对象蒙版控件』介绍

    一. LVGL GUI对象蒙版控件的概念 绘制其子级时,对象蒙版能够向图形添加一些蒙版 二. LVGL GUI对象蒙版小部件和样式 对象蒙版只有一个主要部分 LV_OBJMASK_PART_BG ,它 ...

  8. 嵌入式GUI LVGL『Text Area文本区域控件』介绍

    一. LVGL GUI文本区域控件的概念 文本区域是一个带有标签和光标的页面.文本或字符可以添加到它.长行被换行,当文本足够长时,可以滚动文本区域. 二. LVGL GUI文本区域小部件和样式 文本区 ...

  9. 嵌入式GUI LVGL『Tile View拼接视图控件』介绍

    一. LVGL GUI拼接视图控件的概念 Tileview是一个容器对象,其中的元素(称为tiles)可以以网格形式排列.通过滑动,用户可以在这些贴图之间导航. 如果Tileview是屏幕大小,它会提 ...

  10. GUI一灯大师,LVGL『LED控件』介绍

    一. LVGL GUI LED控件的概念 LED 是矩形(或圆形)的对象.它的亮度可以调节.亮度降低时,LED 的颜色会变暗. 二. LVGL GUI LED小部件和样式 LED 只有一个主要部分,称 ...

最新文章

  1. 2019cvpr oral | 实时自适应立体匹配
  2. shell在二级python_在python下运行时在shell脚本之间传递shell变量[duplicate]
  3. DL之CNN优化技术:学习卷积神经网络CNN的优化、实践经验(练习调参)、从代码深刻认知CNN架构之练习技巧
  4. mysql8.0.13安装版_windows下mysql 8.0.13 解压版安装图文教程
  5. OpenStack的部署T版(五)——Nova组件
  6. 可扩展的编程语言——Scala
  7. 批处理通过字符串截取得到文件名
  8. 新风格高端大气站长素材资源下载站源码 织梦dedecms内核(带手机版)
  9. 电商视觉:焦点图的万能构图模板
  10. Java菜鸟教程 一些简单的练习
  11. OSI常用网络协议(七层)
  12. 2021华科计算机考研专业课,2021考研 华中科技大学计算机考研科目
  13. 网络通信安全基础和OpenSSL
  14. 串口通信协议---UART
  15. 2022爱分析・数据库厂商全景报告 | 爱分析报告
  16. squid配置透明代理并支持Https及http、https拦截
  17. YOLOV7调试的bug
  18. FusionCharts Suite XT 3.19.1-2022-07-22
  19. 关于TVS管选型的几个参数
  20. SUNTANS模型学习(7)——学习simplified river plume算例

热门文章

  1. 萤火虫算法matlab实现,萤火虫算法,matlab代码.doc
  2. AR9285 bt3无线网卡驱动
  3. 文件转Base64格式
  4. Gitflow Git工作流
  5. new ArrayList()创建对象提示“索引超出了数组界限”异常分析
  6. 信息管理与信息系统毕业论文选题?
  7. 计算机快捷键屏幕录制,如何录制电脑屏幕视频-电脑实用快捷键(9页)-原创力文档...
  8. CAM350 使用,典型做钢网
  9. Java反射高频面试题(附答案),做了5年Java
  10. 【pandas教程】索引操作