LVGL学习笔记——长按弹出按键,短按按键消失

使用的LVGL版本:v8.2

  • 创建一个对象,并设置其属性
 // 创建一个对象
    obj = lv_obj_create(lv_scr_act());
    lv_obj_set_pos(obj, 100, 100);
    lv_obj_set_size(obj, 500, 500);
  •  为对象设置事件回调函数
// 设置长按事件回调函数
    lv_obj_add_event_cb(obj, press_event_cb, LV_EVENT_ALL, NULL);
  • 编写事件处理回调函数

static void press_event_cb(lv_event_t *event)
{
     lv_event_code_t event_code = lv_event_get_code(event);

    if(event_code == LV_EVENT_LONG_PRESSED) {
        // 创建弹出框对象


        // 创建按钮对象
         popup =  lv_btn_create(obj);
        lv_obj_set_size(popup, 200, 40);
        lv_obj_align(popup,LV_ALIGN_CENTER, 0, 0);

        // 设置按钮文本
        lv_obj_t * label = lv_label_create(popup);
        lv_label_set_text(label, "Button");

        // 显示弹出框
        lv_obj_clear_flag(popup, LV_OBJ_FLAG_HIDDEN);
    }
    else if(event_code == LV_EVENT_SHORT_CLICKED) {
        // 隐藏弹出框
        if(popup != NULL)
        lv_obj_add_flag(popup, LV_OBJ_FLAG_HIDDEN);
    }
}
  •  实现效果:

LVGL学习笔记——长按弹出按键,短按按键消失_第1张图片

  • 当长按obj对象时

LVGL学习笔记——长按弹出按键,短按按键消失_第2张图片

  • 当再短按obj对象时

按钮消失,这只是一个简单的实现对象点击事件处理的方法,可以基于此实现更复杂的页面处理。

你可能感兴趣的:(LVGL学习笔记,学习,笔记,stm32)