按键事件处理
static void event_cb(lv_event_t* e)
{
lv_event_code_t code = lv_event_get_code(e); //获取产生事件的对象
lv_obj_t* label = lv_event_get_user_data(e);//获取事件对象的用户数据
switch (code) {
case LV_EVENT_PRESSED: // pressed事件
lv_label_set_text(label, "The last button event:\nLV_EVENT_PRESSED");
break;
case LV_EVENT_CLICKED: // clicked事件
lv_label_set_text(label, "The last button event:\nLV_EVENT_CLICKED");
break;
case LV_EVENT_LONG_PRESSED: // long pressed事件
lv_label_set_text(label, "The last button event:\nLV_EVENT_LONG_PRESSED");
break;
case LV_EVENT_LONG_PRESSED_REPEAT: // long repeat事件
lv_label_set_text(label, "The last button event:\nLV_EVENT_LONG_PRESSED_REPEAT");
break;
default:
break;
}
}
创建按键
static void lv_example_event_2(void)
{
lv_obj_t* btn = lv_btn_create(lv_scr_act());//创建Button对象
lv_obj_set_size(btn, 100, 50); // 设置大小
lv_obj_center(btn); // 以屏幕居中显示
lv_obj_t* btn_label = lv_label_create(btn); // 在Button上创建label对象
lv_label_set_text(btn_label, "Click me!"); //设置显示内容
lv_obj_center(btn_label); // 居中显示
lv_obj_t* info_label = lv_label_create(lv_scr_act()); //在当前活动屏幕上创键label对象
lv_label_set_text(info_label, "The last button event:\nNone"); //设置显示内容
lv_obj_add_event_cb(btn, event_cb, LV_EVENT_ALL, info_label); //设置事件及事件用户数据
}
效果图