LVGL——lv_gauge 仪表盘

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: 样式
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值