LVGL_基础控件Button

LVGL_基础控件Button

1、创建按键

LVGL_基础控件Button_第1张图片

 /* 创建一个btn部件(对象) */
 lv_obj_t * btn = lv_btn_create(lv_scr_act());       // 创建一个btn部件(对象),他的父对象是活动屏幕对象
2、修改样式
 // 修改按钮部件(对象)矩形背景部分的样式(按下的时候背景变成黑色)
 lv_obj_set_style_bg_color(btn, lv_color_hex(0x1e1e1e), LV_PART_MAIN | LV_STATE_PRESSED);
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;
    }
}
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(); 的返回值

LVGL_基础控件Button_第2张图片
LVGL_基础控件Button_第3张图片
解释:鼠标滚轮的上下滚可以在导航模式切换控件的焦点,在焦点控件点击滚轮键就会进入编辑模式,此时再滚动滚轮就会改变滑动条的值。

// 创建一个组,稍后将需要使用键盘或编码器或按钮控制的部件(对象)添加进去,并且将输入设备和组关联
// 如果将这个组设置为默认组,那么对于那些在创建时会添加到默认组的部件(对象)就可以省略 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);

LVGL_基础控件Button_第4张图片
LVGL_基础控件Button_第5张图片
LVGL_基础控件Button_第6张图片

你可能感兴趣的:(单片机UI人机界面,java,服务器,前端)