事件回调处理函数

static lv_obj_t* list1;   
static void event_handler(lv_event_t* e)
{
    lv_event_code_t code = lv_event_get_code(e); // 获取对象产生的事件码
    lv_obj_t* obj = lv_event_get_target(e);  // 获取产生事件的对象
    if (code == LV_EVENT_CLICKED) { // LV_EVENT_CLICKED事件处理
        LV_LOG_USER("Clicked: %s", lv_list_get_btn_text(list1, obj)); //打印list对应点击的文本内容
    }
}

创建List

static void lv_example_list_1(void)
{
    /*Create a list*/
    list1 = lv_list_create(lv_scr_act()); //创建List控件对象
    lv_obj_set_size(list1, 180, 220); // 设置大小
    lv_obj_center(list1);  // 居中显示
    /*Add buttons to the list*/
    lv_obj_t* btn;
    lv_list_add_text(list1, "File"); // 添加File文本内容
    btn = lv_list_add_btn(list1, LV_SYMBOL_FILE, "New"); //添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    btn = lv_list_add_btn(list1, LV_SYMBOL_DIRECTORY, "Open");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    btn = lv_list_add_btn(list1, LV_SYMBOL_SAVE, "Save");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    btn = lv_list_add_btn(list1, LV_SYMBOL_CLOSE, "Delete");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    btn = lv_list_add_btn(list1, LV_SYMBOL_EDIT, "Edit");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    lv_list_add_text(list1, "Connectivity");// 添加文本内容
    btn = lv_list_add_btn(list1, LV_SYMBOL_BLUETOOTH, "Bluetooth");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    btn = lv_list_add_btn(list1, LV_SYMBOL_GPS, "Navigation");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    btn = lv_list_add_btn(list1, LV_SYMBOL_USB, "USB");//添加按键New
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    btn = lv_list_add_btn(list1, LV_SYMBOL_BATTERY_FULL, "Battery");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    lv_list_add_text(list1, "Exit");// 添加文本内容
    btn = lv_list_add_btn(list1, LV_SYMBOL_OK, "Apply");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
    btn = lv_list_add_btn(list1, LV_SYMBOL_CLOSE, "Close");//添加按键
    lv_obj_add_event_cb(btn, event_handler, LV_EVENT_CLICKED, NULL);//注册LV_EVENT_CLICKED事件
}

运行效果

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐