【LVGL 学习】按键学习

1. 创建一个按键

void btn_event_cb_t(lv_event_t* e)
{
    lv_obj_t* obj = lv_event_get_target(e);         //获取事件对象 --> 也就是  lv_obj_add_event_cb(btn1, btn_event_cb_t, LV_EVENT_ALL, NULL); 第一个形参 btn
    lv_obj_t* user_obj = lv_event_get_user_data(e); //获取事件对象 --> 也就是  lv_obj_add_event_cb(btn1, btn_event_cb_t, LV_EVENT_ALL, event_label); 最后一个个形参 event_label
    lv_event_code_t event_code = lv_event_get_code(e);
  
    if (obj != NULL)
    {
        switch (event_code)
        {

            case LV_EVENT_PRESSED :

                lv_label_set_text(user_obj, "LV_EVENT_PRESSED");			 /* 设置标签内容 */

                break;
            case LV_EVENT_CLICKED :

                lv_label_set_text(user_obj, "LV_EVENT_CLICKED");			 /* 设置标签内容 */
                break;
            default:
                break;
        }

    }

}

void btn_demo(void)
{
    /* 创建一个屏幕 */
    lv_obj_t* scr = lv_obj_create(NULL);
    lv_scr_load(scr); /* 加载屏幕

    /* 创建两个按钮 */
    lv_obj_t* btn1 = lv_btn_create(scr);		    	 /* 创建一个按钮 1 在屏幕中 */
    lv_obj_set_pos(btn1, 60, 120);					 	 /* 设置该按钮的位置x, y */

    lv_obj_t* btn2 = lv_btn_create(scr);		     	 /* 复制第一个按钮 */
    lv_obj_set_pos(btn2, 60, 60);						 /* 设置该按钮的位置x, y */

    lv_obj_t* event_label = lv_label_create(scr);        /* 创建一个标签于按钮 1*/
    lv_label_set_text(event_label, "event code");		 /* 设置标签内容 */

    /* 添加标签与按钮中 */
    lv_obj_t* label1 = lv_label_create(btn1);        	/* 创建一个标签于按钮 1*/
    lv_label_set_text(label1, "Button 1");			 	/* 设置标签内容 */
    lv_obj_t* label2 = lv_label_create(btn2);        	/*创建一个标签于按钮 2*/
    lv_label_set_text(label2, "Button 2");			 	/* 设置标签内容 */

    lv_obj_add_event_cb(btn1, btn_event_cb_t, LV_EVENT_ALL, event_label);
}
lv_group_create是一个函数,用于创建一个组对象。这个组对象可以用来管理一组相关的控件,以实现按键联动等功能。\[1\]在使用lv_group_create函数创建组对象后,可以使用lv_group_set_default函数将该组设置为默认组,这样在按键操作时,会自动将焦点切换到该组中的控件上。\[1\]同时,可以使用lv_group_add_obj函数将控件添加到组中,以实现按键联动的效果。\[1\]在这个例子中,使用了lv_group_create函数创建了一个组对象g,并使用lv_group_set_default函数将其设置为默认组。然后,使用lv_indev_set_group函数将该组与输入设备相关联,以实现按键操作时的联动效果。\[1\] #### 引用[.reference_title] - *1* *3* [LVGL8基础语法-按钮](https://blog.csdn.net/lllmeimei/article/details/128115671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【LVGL学习笔记--(2)GUI Guider的使用](https://blog.csdn.net/sinat_33408502/article/details/129236366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值