赞
踩
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 仪表盘样式数据类型
- enum {
- LV_GAUGE_STYLE_MAIN,
- };
-
- 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: 样式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。