当前位置:   article > 正文

LVGL——lv_gauge 仪表盘_lvgl刻度盘

lvgl刻度盘

1. lv_gauge 控件
   lv_gauge 控件就是由 lv_lmeter 控件外加一些其他附件构成的,这里的附件有 lv_label 标签,指针,中心圆点等三个元素,其中标签的个数和指针的个数都是可以通过接口来设置的,在 lv_gauge 控件中,它将lv_lmeter 控件中的非活跃刻度线的概念给转变了一下,现在它叫关键数值点(Critical value),超过此数值点后的所有刻度线可以被样式中 line.color 指定的颜色进行高亮,那么在此关键数值点之前的所有刻度线跟 lv_lmeter 中的活跃刻度线概念差不多,可以由 body.main_color 和 body.grad_color 来形成弧形渐变色.可以通过 lv_gauge_set_critical_value(gauge, value);这个接口来设置关键数值点。

2. lv_gauge 的 API 接口

2.1 主要数据类型

2.1.1 仪表盘样式数据类型

  1. enum {
  2.        LV_GAUGE_STYLE_MAIN,
  3. };
  4. typedef uint8_t lv_gauge_style_t;

我们这里主要是讲这种样式里面相关字段的含义,如下所示:
body.main_color: 关键数值点之前的刻度线的起始颜色
body.grad_color: 关键数值点之前的刻度线的终止颜色
body.padding.left: 每一条刻度线的长度
body.padding.inner: 数值标签与刻度线之间的距离
body.border.color: 中心圆点的颜色
body.radius: 中心圆点的半径
line.width: 每一条刻度线的宽度
line.color: 关键数值点之后的刻度线的颜色
text.font/color/letter_space: 数值文本的相应样式

2.2 API 接口
2.2.1 创建对象
lv_obj_t * lv_gauge_create(lv_obj_t * par, const lv_obj_t * copy);
1
参数:
par: 父对象
copy: 拷贝的对象,如果无拷贝的话,传 NULL 值
返回值:
返回创建出来的对象,如果返回 NULL 的话,说明堆空间不够了

2.2.2 设置指针的数量和颜色

void lv_gauge_set_needle_count(lv_obj_t * gauge, uint8_t needle_cnt, const lv_color_t colors[]);


参数:
gauge: 仪表盘对象
needle_cnt: 指针的数量
colors: 是一个数组,存放每一根指针的颜色,这个 colors 数组必须是静态的或者全局的,即必须得保证这个资源在外部不能被释放,因为这个接口内部没有对 colors 做拷贝操作

2.2.3 设置某根指针的数值

void lv_gauge_set_value(lv_obj_t * gauge, uint8_t needle_id, int16_t value);



参数:
gauge: 仪表盘对象
needle_id: 指针 id 号,从 0 开始的
value: 指针所指向的数值

2.2.4 设置仪表盘的数值范围

static inline void lv_gauge_set_range(lv_obj_t * gauge, int16_t min, int16_t max);


参数:
gauge: 仪表盘对象
min: 最小数值
max: 最大数值
如果不设置的话,默认范围为[0,100]

2.2.5 设置关键数值点

static inline void lv_gauge_set_critical_value(lv_obj_t * gauge, int16_t value);


参数:
gauge: 仪表盘对象
value: 关键数值点对应的数值
如果不设置的话,默认值为 80

2.2.6 设置角度,刻度数量,标签数量

void lv_gauge_set_scale(lv_obj_t * gauge, uint16_t angle, uint8_t line_cnt, uint8_t label_cnt);


参数:
gauge: 仪表盘对象
angle: 仪表盘的角度,范围为[0,360]
line_cnt: 仪表盘的刻度总数量
label_cnt: 数值标签的数量

2.2.7 设置样式

static inline void lv_gauge_set_style(lv_obj_t * gauge, lv_gauge_style_t type, lv_style_t * style);


参数:
gauge: 仪表盘对象
type: 设置那一部分的样式,目前就只有 LV_GAUGE_STYLE_MAIN 这个一个可选值
style: 样式
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/472029
推荐阅读
  

闽ICP备14008679号