又来?又一个仪表,LVGL『Line meter仪表控件』介绍

一. LVGL GUI仪表控件的概念

线表对象由一些绘制比例的径向线组成。设置线表的值将按比例更改比例线的颜色。

二. LVGL GUI仪表小部件和样式

线表只有一个主要部分,称为 LV_LINEMETER_PART_MAIN 。它使用所有典型的背景属性绘制矩形或圆形背景,并使用 line 和 scale 属性绘制比例线。活动行(与当前值的较小值相关)从 line_color
变为 scale_grad_color。最后一行(当前值之后)设置为 scale_end_color 颜色。

三. LVGL GUI仪表控件的使用

1. 设置值(Set value)

用这个函数来设置仪表的新值lv_linemeter_set_value(linemeter, new_value),我们来写个程序验证下,创建两个仪表控件,一个是默认不设置值,一个设置为80

代码如下:

void lvgl_line_meter_set_value_test(void)
{
    /*Create a line meter */
    lv_obj_t* lmeter1 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_obj_set_pos(lmeter1, 150, 150);

    lv_obj_t* lmeter2 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_obj_set_pos(lmeter2, 400, 150);
    lv_linemeter_set_value(lmeter2, 80);
}

2. 范围跟角度(Range and Angles)

用这个函数来设置值得范围lv_linemeter_set_range(linemeter, min, max),默认是[0:100]

用这个函数来设置角度跟线的数量lv_linemeter_set_scale(linemeter, angle, line_num),默认220度跟18跟线,官网说31是有问题的

下面我们来写一个程序验证下,一共创建3个,最左边的是默认的,中间的范围设置为[0:200],设置值为80,最右边的设置角度是360,36跟线,设置值为80,代码如下:

void lvgl_line_meter_range_angle_test(void)
{
    /*Create a line meter */
    lv_obj_t* lmeter1 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_obj_set_pos(lmeter1, 150, 150);

    lv_obj_t* lmeter2 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_obj_set_pos(lmeter2, 400, 150);
    lv_linemeter_set_range(lmeter2, 0, 200);
    lv_linemeter_set_value(lmeter2, 80);

    lv_obj_t* lmeter3 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_linemeter_set_scale(lmeter3, 360, 36);
    lv_obj_set_pos(lmeter3, 650, 150);
    lv_linemeter_set_value(lmeter3, 80);

}

3. 角度偏移(Angle offset)

用这个lv_linemeter_set_angle_offset角度偏移,我们写个程序验证下

void lvgl_line_meter_angle_offset_test(void)
{
    /*Create a line meter */
    lv_obj_t* lmeter1 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_obj_set_pos(lmeter1, 150, 150);
    lv_linemeter_set_value(lmeter1, 80);

    lv_obj_t* lmeter2 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_obj_set_pos(lmeter2, 400, 150);
    lv_linemeter_set_value(lmeter2, 80);
    lv_linemeter_set_angle_offset(lmeter2,90);
}

4. 镜面(Mirror)

用这个来设置镜面lv_linemeter_set_mirror(linemeter, true/false)

void lvgl_line_meter_mirror_test(void)
{
    /*Create a line meter */
    lv_obj_t* lmeter1 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_obj_set_pos(lmeter1, 150, 150);
    lv_linemeter_set_value(lmeter1, 80);

    lv_obj_t* lmeter2 = lv_linemeter_create(lv_scr_act(), NULL);
    lv_obj_set_pos(lmeter2, 400, 150);
    lv_linemeter_set_value(lmeter2, 80);
    lv_linemeter_set_mirror(lmeter2, true);
}

好了,完结了,更多精彩继续戳↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wireless_Link

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值