lvgl 8.3 lv_meter_set_indicator_start_value
时间: 2023-07-06 13:13:50 浏览: 177
在LVGL v8.3中,`lv_meter_set_indicator_start_value`函数已被移除,取而代之的是一个更通用的函数`lv_meter_set_scale`,用于设置Meter对象的刻度。
新函数的原型如下:
```c
void lv_meter_set_scale(lv_obj_t * meter, const lv_meter_scale_t * scale);
```
其中,`meter`是要设置的Meter对象的指针,`scale`是一个lv_meter_scale_t类型的结构体指针,用于描述Meter对象的刻度。
lv_meter_scale_t结构体定义如下:
```c
typedef struct {
int32_t min_value; /* 最小值 */
int32_t max_value; /* 最大值 */
uint16_t num_ticks; /* 刻度数量 */
uint16_t major_ticks; /* 大刻度数量 */
uint16_t line_count; /* 刻度线数量 */
uint16_t label_count; /* 标签数量 */
uint8_t label_format; /* 标签格式 */
const char ** labels; /* 标签指针 */
lv_coord_t line_width; /* 刻度线宽度 */
lv_coord_t label_gap; /* 标签间隔 */
lv_opa_t line_opa; /* 刻度线不透明度 */
const lv_style_t * line_style; /* 刻度线样式 */
const lv_style_t * major_tick_style;/* 大刻度样式 */
const lv_style_t * label_style; /* 标签样式 */
} lv_meter_scale_t;
```
其中,`min_value`和`max_value`分别是Meter对象的刻度范围的最小值和最大值,`num_ticks`是刻度数量,`major_ticks`是大刻度数量,`line_count`是刻度线数量,`label_count`是标签数量,`label_format`是标签格式,`labels`是标签指针,`line_width`是刻度线宽度,`label_gap`是标签间隔,`line_opa`是刻度线不透明度,`line_style`是刻度线样式,`major_tick_style`是大刻度样式,`label_style`是标签样式。
例如,如果您要设置一个Meter对象的指针起始值为50,最小值为0,最大值为100,可以使用以下代码:
```c
lv_obj_t *meter = lv_meter_create(parent, NULL); // 创建Meter对象
// 设置刻度
lv_meter_scale_t scale;
lv_meter_scale_init(&scale);
scale.min_value = 0;
scale.max_value = 100;
scale.num_ticks = 11;
scale.major_ticks = 5;
lv_meter_set_scale(meter, &scale);
lv_meter_set_value(meter, 50); // 设置当前值为50
```
此函数适用于LVGL v8.3及以上版本。
阅读全文