LVGL学习 lv_btn

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • lv_btn
  • 一、功能
  • 二、事件
  • 三、Part
  • 四、使用步骤
    • 1.创建按钮
    • 2.设置背景颜色
  • 五、示例
    • 1.生成一个普通按钮
    • 2.生成一个Toggle切换的按钮


lv_btn

默认情况下,按钮在以下方面与基础对象不同:
不可滚动
添加到默认组(可修改为给其他输入设备控制用,如按键)
默认高度和宽度设置为 LV_SIZE_CONTENT(自动调整)


一、功能

与 基础对象 相比,没有新功能。


二、事件

如果打开了 LV_OBJ_FLAG_CHECKABLE,在对象被点击时有选中切换(Toggle)状态的效果,并且可以在 LV_EVENT_VALUE_CHANGED 事件类型中处理事件。


三、Part

只有这个:
LV_PART_MAIN 按钮的背景


四、使用步骤

1.创建按钮

代码如下(示例):

static lv_obj_t *scr;
static lv_obj_t *btn;
scr = lv_scr_act();
btn = lv_btn_create( scr );

2.设置背景颜色

lv_obj_set_style_bg_color(btn,lv_color_hex(0x111111),LV_PART_MAIN);

五、示例

1.生成一个普通按钮

```c
// 回调函数
void btn_callback(lv_event_t *e)
{
    lv_event_code_t code = lv_event_get_code(e);	// 获取事件类型
    switch(code)	// 判断事件类型
    {
    	case LV_EVENT_PRESSED:
            printf("PRESSED\n");	// 事件处理
            break;
        case LV_EVENT_CLICKED:
            printf("CLICKED\n");	// 事件处理
            break;
        default;
            // printf("DEFAULT\n");	// 事件处理
            break;
    }
}
// 创建按钮
void test_draw_btn(void)
{
    static lv_obj_t *scr;
    static lv_obj_t *btn;
    scr = lv_scr_act();	// 获取当前活跃层
    btn = lv_btn_create( scr );	// 创建按钮对象

    lv_obj_set_style_bg_color(btn,lv_color_hex(0xFFF000),LV_PART_MAIN | LV_STATE_PRESSED);	// 添加按钮按下时的背景颜色样式
    lv_obj_set_pos(btn,200,50);	// 设置坐标

    lv_obj_add_event_cb(btn,btn_callback,LV_EVENT_ALL,NULL);	// 绑定事件
}

2.生成一个Toggle切换的按钮

// 回调函数
void btn_toggle_callback(lv_event_t *e)
{
    lv_event_code_t code = lv_event_get_code(e);	// 获取事件类型
    switch(code)	// 判断事件类型
    {
        case LV_EVENT_VALUE_CHANGED:
            printf("VALUE_CHANGED\n");	// 事件处理 按钮按下一次 触发一次
            break;
        default:
            // printf("DEFAULT\n");	// 事件处理
            break;
    }
}
// 创建按钮
void test_draw_btn_toggle(void)
{
    static lv_obj_t *scr;
    static lv_obj_t *btn;
    scr = lv_scr_act();	// 获取当前活跃层
    btn = lv_btn_create( scr );	// 创建按钮对象

    lv_obj_set_style_bg_color(btn,lv_color_hex(0xFFF000),LV_PART_MAIN | LV_STATE_CHECKED);	// 添加样式
    lv_obj_set_pos(btn,200,100);	// 设置坐标

    lv_obj_add_flag(btn,LV_OBJ_FLAG_CHECKABLE); // 把按钮变成 Toggle
    lv_obj_add_event_cb(btn,btn_toggle_callback,LV_EVENT_ALL,NULL);	// 绑定事件
}

你可能感兴趣的:(LVGL,学习)