• LVGL_基础控件Button


    LVGL_基础控件Button

    1、创建按键

    在这里插入图片描述

     /* 创建一个btn部件(对象) */
     lv_obj_t * btn = lv_btn_create(lv_scr_act());       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
    
    • 1
    • 2
    2、修改样式
     // 修改按钮部件(对象)矩形背景部分的样式(按下的时候背景变成黑色)
     lv_obj_set_style_bg_color(btn, lv_color_hex(0x1e1e1e), LV_PART_MAIN | LV_STATE_PRESSED);
    
    • 1
    • 2
    3、事件(按钮可以变成switchbutton使用)
    /* 创建一个btn部件(对象) */
    lv_obj_t * btn = lv_btn_create(lv_scr_act());       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
    
    // 修改按钮部件(对象)矩形背景部分的样式
    lv_obj_set_style_bg_color(btn, lv_color_hex(0x1e1e1e), LV_PART_MAIN | LV_STATE_PRESSED);
    
    // 打开了 LV_OBJ_FLAG_CHECKABLE ,当对象被点击时有选中切换(Toggle)状态的效果
    // 其触发的是 LV_EVENT_VALUE_CHANGED 事件类型
    lv_obj_add_flag(btn, LV_OBJ_FLAG_CHECKABLE);
    
    // 处理 LV_EVENT_VALUE_CHANGED 事件类型示例
    lv_obj_add_event_cb(btn, btn_toggle_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
    
    static void btn_toggle_event_cb(lv_event_t * e)
    {
        lv_obj_t * obj = lv_event_get_target(e);        // 获取触发事件的部件(对象)
        lv_event_code_t code = lv_event_get_code(e);    // 获取当前部件(对象)触发的事件代码
    
        switch(code){
            case LV_EVENT_VALUE_CHANGED:
                printf("LV_EVENT_VALUE_CHANGED\n");
                break;
            default:
                //printf("NONE\n");
                break;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    4、使用实体按键

    首先要创建一个 组(Groups) : lv_group_t * g = lv_group_create();
    然后将一个对象添加到 组(Groups) 中: lv_group_add_obj(g, obj);
    最后要将组(Groups)与输入设备相关联: lv_indev_set_group(indev, g); 其中 indev 是 lv_indev_drv_register(); 的返回值

    在这里插入图片描述
    在这里插入图片描述
    解释:鼠标滚轮的上下滚可以在导航模式切换控件的焦点,在焦点控件点击滚轮键就会进入编辑模式,此时再滚动滚轮就会改变滑动条的值。

    // 创建一个组,稍后将需要使用键盘或编码器或按钮控制的部件(对象)添加进去,并且将输入设备和组关联
    // 如果将这个组设置为默认组,那么对于那些在创建时会添加到默认组的部件(对象)就可以省略 lv_group_add_obj()
    lv_group_t * g = lv_group_create();
    
    // 将上面创建的组设置为默认组
    // 如果稍后创建的部件(对象),使用默认组那必须要在其创建之前设置好默认组,否则不生效
    //lv_group_set_default(g);
    
    // 将输入设备和组关联(使用前先打开上面注释掉的头文件)
    //lv_indev_set_group(lv_win32_keypad_device_object, g);     // 键盘
    lv_indev_set_group(lv_win32_encoder_device_object, g);      // 鼠标上的滚轮(编码器)
    
    
    /* 创建一个btn部件(对象) */
    lv_obj_t * btn1 = lv_btn_create(lv_scr_act());       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
    lv_obj_set_size(btn1, 100, 50);
    lv_obj_align(btn1, LV_ALIGN_CENTER, 0, -100);
    
    lv_obj_t * btn2 = lv_btn_create(lv_scr_act());       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
    lv_obj_set_size(btn2, 100, 50);
    lv_obj_align_to(btn2, btn1, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
    
    lv_obj_t * btn3 = lv_btn_create(lv_scr_act());       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
    lv_obj_set_size(btn3, 100, 50);
    lv_obj_align_to(btn3, btn2, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
    
    lv_obj_t * btn4 = lv_btn_create(lv_scr_act());       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
    lv_obj_set_size(btn4, 100, 50);
    lv_obj_align_to(btn4, btn3, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
    
    lv_obj_t * slider = lv_slider_create(lv_scr_act());
    lv_obj_align_to(slider, btn4, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
    
    // 将部件(对象)添加到组,如果设置了默认组,这里可以省略
    lv_group_add_obj(g, btn1);
    lv_group_add_obj(g, btn2);
    lv_group_add_obj(g, btn3);
    lv_group_add_obj(g, btn4);
    lv_group_add_obj(g, slider);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    SAP 接口主动推送企业微信异常消息
    jQuery Ajax前后端数据交互
    电动吸吮式过滤器 自清洗过滤器
    Allegro如何对器件进行等距对齐操作
    QT安装和运行
    【JS笔记】JSON对象和面向对象编程
    道可云元宇宙每日资讯|上海旅游节将打造数字文旅新场景
    上半年营收32.48亿元,这家上市公司拟投资20亿在东莞建智能家居和智慧安防产品制造项目
    【***操作系统---第三章***】
    华为云招募工业智能领域合作伙伴,强力扶持+商业变现
  • 原文地址:https://blog.csdn.net/weixin_50183638/article/details/133561137