LVGL实现按键和点击事件

1编写流程

1-1创建屏幕对象

1-2创建按钮对象并将屏幕对象给按钮

1-3创建一个文本对象,并将按钮对象给文本

1-4设置文本

1-5为按钮添加事件

2源码

//按键回调函数
void event_handler(lv_event_t* event){
  int code = lv_event_get_code(event);//获取事件类型的代码
  lv_obj_t* obj=lv_event_get_target(event);//获取事件的对象的地址
  //lv_obj_t* data=lv_event_get_user_data(event);//获取传输的数据
  printf("target:%p \n",obj);
  if(code == LV_EVENT_CLICKED){//判断是否是点击事件
    printf("110\r\n");
  }
}
//实现按键
void demo_button(){
  lv_obj_t* screen=lv_scr_act();
  //创建按钮对象
  lv_obj_t* button=lv_btn_create(screen);
  //为按键添加一个文本
  lv_obj_t* label=lv_label_create(button);//创建一个文本对象并将按键对象添加进去
  lv_label_set_text(label,"Hello");//添加一个文本
  //居中
  lv_obj_center(button);
  //给按钮添加点击事件
  //1,按钮控件名  2,回调函数 3,监听什么事件 4,传入什么数据
  lv_obj_add_event_cb(button,event_handler,LV_EVENT_CLICKED,NULL);
  printf("dui_xiang_di_zi %p",button);//打印地址
  //%p 是格式化输出宏,用于打印指针的值。
}

3重点的详细资料

  1. int code = lv_event_get_code(event);

    这行代码用于获取事件代码,它表示发生了什么类型的事件。lv_event_get_code 是LVGL的一个函数,它接受一个 lv_event_t 类型的参数 event,并返回一个整数值,这个整数值对应于事件的类型。

    • event:这是一个指向 lv_event_t 结构体的指针,它包含了事件的所有相关信息。
    • code:这是一个整数变量,用于存储事件代码。常见的事件代码包括:
      • LV_EVENT_PRESSED:当对象被按下时。
      • LV_EVENT_CLICKED:当对象被点击(按下并释放)时。
      • LV_EVENT_RELEASED:当对象被释放时。
      • LV_EVENT_LONG_PRESSED:当对象被长按时。
      • 等等。

    通过检查 code 的值,你可以确定应该对事件做出什么样的响应。