当前位置: 首页 > 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) 设置)增加到旋钮的单击区域。

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

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

相关文章:

  • 口腔牙科小程序源码介绍
  • 多线程下如何保证事务的一致性
  • AliSQL:阿里巴巴开源数据库的技术革新与应用实践
  • idea查看class文件源码
  • OpenAI Codex 加入Agent编程工具新阵营
  • Git客户端安装、操作
  • 进阶知识:自动化框架开发之有参的函数装饰器@wraps()和无参之间的对比
  • 蓝牙OBEX和PBAP协议概述
  • 项目计划缺乏可行性,如何制定实际可行的计划?
  • 利用 SQL Server 作业实现异步任务处理,简化系统架构
  • 集成思想在算法(目标检测)中的体现
  • 芯片分享之AD5542性能介绍
  • docker 安装 Nacos
  • 从复杂度到有序:大模型专家系统的进化之路——深入解析层次化专家模式
  • Linux bash shell的循环命令for、while和until
  • 策略调度平台实现总结
  • MySQL基础关键_014_MySQL 练习题
  • KeepassXC (Win10) 打不开的解决方法
  • Nginx笔记
  • 开疆智能Profinet转RS485网关连接电磁流量计到西门子PLC配置案例
  • STM32--串口函数
  • 随机数种子seed和相关系数ρ
  • vue3 + echarts(5.6.0)实现渐变漏斗图
  • vue2实现【瀑布流布局】
  • 粤港澳编程题
  • 【HTML-2】HTML 标题标签:构建网页结构的基础
  • Tomcat配置详情
  • 解码数据语言:如何优雅的进行数仓字典建设?
  • C++:迭代器
  • C++数据结构——红黑树