mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
36 lines
986 B
C
36 lines
986 B
C
#include "../../lv_examples.h"
|
|
|
|
#if LV_USE_ARC && LV_BUILD_EXAMPLES
|
|
|
|
static void value_changed_event_cb(lv_event_t * e);
|
|
|
|
void lv_example_arc_1(void)
|
|
{
|
|
lv_obj_t * label = lv_label_create(lv_screen_active());
|
|
|
|
/*Create an Arc*/
|
|
lv_obj_t * arc = lv_arc_create(lv_screen_active());
|
|
lv_obj_set_size(arc, 150, 150);
|
|
lv_arc_set_rotation(arc, 135);
|
|
lv_arc_set_bg_angles(arc, 0, 270);
|
|
lv_arc_set_value(arc, 10);
|
|
lv_obj_center(arc);
|
|
lv_obj_add_event(arc, value_changed_event_cb, LV_EVENT_VALUE_CHANGED, label);
|
|
|
|
/*Manually update the label for the first time*/
|
|
lv_obj_send_event(arc, LV_EVENT_VALUE_CHANGED, NULL);
|
|
}
|
|
|
|
static void value_changed_event_cb(lv_event_t * e)
|
|
{
|
|
lv_obj_t * arc = lv_event_get_target(e);
|
|
lv_obj_t * label = lv_event_get_user_data(e);
|
|
|
|
lv_label_set_text_fmt(label, "%d%%", lv_arc_get_value(arc));
|
|
|
|
/*Rotate the label to the current position of the arc*/
|
|
lv_arc_rotate_obj_to_angle(arc, label, 25);
|
|
}
|
|
|
|
#endif
|