LVGL--按钮部件(lv_btn)

在LVGL中,按钮部件与基础对象相比,没有新增任何功能。
注意,在按钮部件中是没有相关的像标签部件那样可以显示文字的,所以想要实现按钮上有文字,还是要使用标签部件。
	//知识点1:创建按钮部件
	lv_obj_t *btn = lv_btn_create(lv_scr_act());//创建按钮部件
	//知识点2:设置样式
    lv_obj_set_size(btn,100,50);//大小
    lv_obj_set_align(btn,LV_ALIGN_CENTER);//居中对齐
    lv_obj_set_style_bg_color(btn,lv_color_hex(0xffe1d4),LV_STATE_PRESSED);//背景颜色
    //知识点3:添加事件
    lv_obj_add_flag(btn,LV_OBJ_FLAG_CHECKABLE);//开启状态切换
    lv_obj_add_event_cb(btn,event_cb,LV_EVENT_VALUE_CHANGED,NULL);//添加按键事件
    !!!注意!!!
    要添加按键事件,需要提前开启状态切换,否则是不会触发按键事件的。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个使用 `lv_obj_get_index` 函数的 ESP32-S3 LVGL 示例代码: ```c #include "lvgl/lvgl.h" #include "lv_examples/lv_examples.h" // 定义一个自定义的列表回调函数 static void list_button_action(lv_obj_t * button) { uint32_t index = lv_obj_get_index(button); // 获取按钮的索引 printf("Button %d is pressed\n", index); } void lvgl_example(void) { // 初始化 LVGL lv_init(); // 创建一个屏幕 lv_obj_t * screen = lv_disp_get_scr_act(NULL); // 创建一个垂直布局 lv_obj_t * layout = lv_obj_create(screen, NULL); lv_obj_set_size(layout, LV_HOR_RES, LV_VER_RES); lv_obj_set_flex_flow(layout, LV_FLEX_FLOW_COLUMN); // 创建一个列表 lv_obj_t * list = lv_list_create(layout, NULL); lv_obj_set_width(list, LV_HOR_RES); lv_obj_align(list, NULL, LV_ALIGN_CENTER, 0, 0); lv_list_set_sb_mode(list, LV_SB_MODE_AUTO); // 添加几个列表按钮 lv_obj_t * btn = lv_list_add_btn(list, LV_SYMBOL_OK, "Button 1"); lv_obj_set_event_cb(btn, list_button_action); lv_obj_set_index(btn, 1); // 设置按钮的索引为 1 btn = lv_list_add_btn(list, LV_SYMBOL_OK, "Button 2"); lv_obj_set_event_cb(btn, list_button_action); lv_obj_set_index(btn, 2); // 设置按钮的索引为 2 btn = lv_list_add_btn(list, LV_SYMBOL_OK, "Button 3"); lv_obj_set_event_cb(btn, list_button_action); lv_obj_set_index(btn, 3); // 设置按钮的索引为 3 // 运行 LVGL while (1) { lv_task_handler(); esp_task_wdt_reset(); vTaskDelay(1); } } ``` 在该代码中,我们创建了一个垂直布局,并在其中创建了一个列表。然后,我们添加了三个列表按钮,并分别使用 `lv_obj_set_index` 函数将它们的索引设置为 1、2 和 3。最后,我们实现了一个自定义的列表回调函数,它使用 `lv_obj_get_index` 函数获取被按下的按钮的索引,并将其打印到控制台上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值