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

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十三讲)

这一期我们讲解lvgl中滑动条控件的基础使用,滑动条像是进度条(bar)与按键旋钮的结合体,拖动旋钮可以设置滑块的值,其中滑块与进度条一样可以设置垂直与水平的方向。
滑块的部件由三个模块组成,分别是背景(main)、指示器(indicator)、旋钮(knob),具体如下图所示:
在这里插入图片描述
【1】LV_PART_MAIN :使用典型的背景样式属性,设padding属性会使指示器在相应方向上变小。
【2】LV_PART_INDICATOR :使用典型的背景样式属性。
【3】LV_PART_KNOB :使用典型的背景属性。默认情况下,旋钮是圆形的(半径样式可对此进行修改),其边长等于滑块较小的那个尺寸。可以通过 padding值使旋钮变大。内边距的值也可以是非对称的。

(1) 设置滑块的当前值与范围

一旦创建了一个滑块(Slider),它具有以下属性:
• 值(value)等于 0;
• 默认范围是 [0…100];
• 水平方向,且
• 默认宽度大约为 2 英寸(依据 LV_DPI_DEF(C 语言宏)配置的值而定),
• 默认高度大约为 1/10 英寸(依据 LV_DPI_DEF(C 语言宏)配置的值而定)。

若要设置不同的值,可使用以下方法:
• lv_slider_set_value(slider, new_value, LV_ANIM_ON/OFF)(动画时间由样式的 ``anim_time 属性设置);
• lv_slider_set_range(slider, min, max);以及
对于方向、宽度和高度,只需设置宽度和高度样式属性即可; - lv_bar_set_orientation(slider, orientation)可覆盖由 ``width 和 height 所决定的方向。
orientation 的有效值如下:
• LV_BAR_ORIENTATION_AUTO,
• LV_BAR_ORIENTATION_HORIZONTAL,
• LV_BAR_ORIENTATION_VERTICAL.
默认的绘制方向在水平方向上是从左到右,在垂直方向上是从下到上。如果最小值被设置得大于最大值(例如 [100…0]),那么绘制方向将会反转。

(2) 滑块模式

滑动条可以是以下模式之一:
[1] LV_SLIDER_MODE_NORMAL :像上面说的普通情况
[2] LV_SLIDER_SYMMETRICAL :这个模式下可以指定负的最小范围。但是只能从零值到当前值绘制指示器。
[3] LV_SLIDER_RANGE: 在这个模式下也可以指定负的最小范围。这样滑动条的起始值可以不是0,使用 lv_bar_set_start_value(bar, new_value, LV_ANIM_ON / OFF) 设置起始值。要注意设置的起始值必须小于结束值。
可以使用 lv_slider_set_mode(slider, LV_SLIDER_MODE_…) 更改模式。

还有一种拓展模式,在某些情况下,需要将滑动条设置为仅对拖动旋钮做出反应,可以通过添加 LV_OBJ_FLAG_ADV_HITTEST lv_obj_add_flag(slider, LV_OBJ_FLAG_ADV_HITTEST) 来启用此功能。
扩展的单击区域(由 lv_obj_set_ext_click_area(slider, value) 设置)增加到旋钮的单击区域。

下一期将讲解滑动条的事件以及具体的使用代码。
本文章由威三学社出品
对课程感兴趣可以私信联系

相关文章:

  • 文献解读:LigandMPNN
  • CHI中ordering的抽象
  • RAG评估标准
  • 人工智能+:职业价值的重构与技能升级
  • 十分钟聊明白DDD领域驱动设计
  • 安装完dockers后就无法联网了,执行sudo nmcli con up Company-WiFi,一直在加载中
  • java基础-异常
  • CompleteableFuture的异步任务编排
  • MySQL的安装及相关操作
  • MySQL 自启动时报错can‘t create PID file: No such file or directory
  • 基于天猫 API 的高效商品详情页实时数据接入方法解析
  • 麒麟系统编译osg —— 扩展篇
  • 系统架构设计(十六):敏感点、权衡点、风险点和非风险点
  • EtherCAT通信协议
  • 题解:AT_abc244_e [ABC244E] King Bombee
  • vue+three.js 五彩烟花效果封装+加载字体
  • Go语言实战:使用 excelize 实现多层复杂Excel表头导出教程
  • idea 插件开发自动发布到 nexus 私服中(脚本实例)
  • 随记1-LLM多轮对话的陷阱
  • LTX-Videov本地部署教程:时空扩散+多尺度渲染,重塑AI视频研究范式
  • 中国代表:美国才是南海安全稳定的最大威胁
  • 单人飞行器首次实现海拔5000米载人试飞
  • 上海地铁:9号线因雨天打滑,佘山往九亭方向部分列车限速运行
  • 新造古镇丨江浙沪重点打造的“水乡客厅”,古镇也能串着玩?
  • 李在明遭遇暗杀威胁,韩国警方锁定两名嫌疑人
  • 金融监管总局将研究出台专门的城市更新项目贷款管理办法:引导大力支持城中村的改造等