LVGL -按键基本操作-创建、风格和回调 上

1 按键btn介绍

在 LVGL(Light and Versatile Graphics Library) 中,btn(按钮)是一种常用的基础控件,用于实现用户点击交互。它通常作为触发某些操作(如切换界面、提交表单、开启功能等)的界面元素。

1.1 特点

  1. 可点击:最基本的功能是响应点击事件。

  2. 可嵌套内容:你可以在按钮中放置 label、image、icon 等对象。

  3. 支持状态变化:如按下、高亮、禁用、被选中等。

  4. 可样式化:背景颜色、边框、透明度、圆角、阴影等均可自定义。

  5. 支持“开关”模式:可通过 LV_OBJ_FLAG_CHECKABLE 实现切换状态(选中/未选中)。

1.2 创建步骤

创建按钮一般分三步:

  1. 创建对象:用 lv_btn_create() 创建按钮对象。

  2. 放入内容:如 lv_label_create() 放入文字。

  3. 注册事件:使用 lv_obj_add_event_cb() 添加点击事件响应。

1.3 风格设定

  1. 背景颜色(bg_color)

  2. 透明度(bg_opa)

  3. 边框(border_color, border_width)

  4. 圆角(radius)

  5. 阴影(shadow_width, shadow_color)

2 常见函数介绍

2.1 基本函数

  1. 创建
lv_obj_t *btn = lv_btn_create(lv_scr_act()); // 创建一个按钮
  1. 设定大小 lv_obj_set_size()
l`v_obj_set_size(btn, 100, 50); // 设置按钮大小为 100x50`
  1. 对齐 lv_obj_align()
lv_obj_align(btn, LV_ALIGN_CENTER, 0, 0); // 将按钮居中
  1. 为按钮(或其他对象)添加事件回调函数。 lv_obj_add_event_cb()
lv_obj_add_event_cb(btn, my_btn_event_handler, LV_EVENT_CLICKED, NULL);

2.2 风格

按钮的风格(style)是用来定义按钮外观的方式。你可以通过风格设置来控制按钮的背景、边框、圆角、字体等各个视觉元素。按钮风格的操作在 LVGL 中是非常重要的,因为它允许你自定义控件的外观和交互反馈。

  1. 风格对象(lv_style_t)
    所有控件的风格都使用 lv_style_t 对象来定义,它包含了控件的所有视觉属性,例如背景颜色、边框样式、字体等。

lv_style_t 是一个结构体,包含多个视觉属性,可以通过 API 函数来设置或修改。

  1. 创建和初始化风格
    在 LVGL 中,风格通常是通过 lv_style_t 对象来创建的。可以使用 lv_style_init() 初始化风格对象,接着使用不同的风格设置函数来定义具体的样式。
static lv_style_t style;
lv_style_init(&style);
  1. 设置按钮的背景风格
    使用 lv_style_set_bg_color()、lv_style_set_bg_grad_color() 等函数来设置按钮背景的颜色、渐变等。
lv_style_set_bg_color(&style, LV_COLOR_RED);
lv_style_set_bg_opa(&style, LV_OPA_COVER);  // 设置背景的不透明度
  1. 设置按钮的边框
    使用 lv_style_set_border_color()、lv_style_set_border_width() 等函数来设置按钮边框的颜色、宽度等。

l

v_style_set_border_color(&style, LV_COLOR_BLACK);
lv_style_set_border_width(&style, 2);
  1. 设置按钮的圆角
    使用 lv_style_set_radius() 来设置按钮的圆角大小。
lv_style_set_radius(&style, 10);  // 设置圆角半径为 10
  1. 设置按钮的阴影<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式产品

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值