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

文章目录

  • 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); // 把按钮变成 Togglelv_obj_add_event_cb(btn,btn_toggle_callback,LV_EVENT_ALL,NULL);   // 绑定事件
}

LVGL学习 lv_btn相关推荐

  1. LVGL学习笔记1 - 准备

    目录 1. 下载LVGL源代码 2. 平台 3. 导入到工程 3.1 配置头文件 3.2 src文件夹 4. 移植 4.1 显示接口部分 4.1.1 disp_init 4.1.2 lv_port_d ...

  2. 【LVGL学习笔记】(三)控件使用

    LVGL全程LittleVGL,是一个轻量化的,开源的,用于嵌入式GUI设计的图形库.并且配合LVGL模拟器,可以在电脑对界面进行编辑显示,测试通过后再移植进嵌入式设备中,实现高效的项目开发. LVG ...

  3. LVGL学习之初始化和屏幕旋转

    背景 手里有一块ESP32-S2-HMI-DevKit-1开发板,是乐鑫基于ESP32-S2模组开发的HMI人机交互方案开发板: 一边学习ESP32开发的过程中,也顺带学习一下LVGL图形库: 遇到的 ...

  4. LVGL学习(一)PC模拟器

    学习正点原子教程 环境搭建 Code::blocks下载地址:https://sourceforge.net/projects/codeblocks/ 工程获取 工程代码下载地址:https://gi ...

  5. LVGL学习之路——基于lv_lib_freetype库的TTF字体文件动态加载中文字体(阿里普惠字体)

    前言   在学习lvgl中,在英文字体上很多人都用过,但是中文字体往往需要靠取模去实现.那么我就在想,如何像windows那样加载动态的字体呢,这样想做多大字体都行.于是就开始了字体的移植. 什么是t ...

  6. LittleVGL(LVGL)学习笔记——PC 模拟器的安装和使用(CodeBlocks)

    目录 一.简介 1.LittleVGL 所支持的 IDE 软件种类: 2.需要的工具: 二.安装配置软件和环境 1.littleVGL 模拟器库 2.安装CodeBlocks 三.创建工程项目 四.配 ...

  7. 【LVGL 学习】LVGL 加载 GIF 动态图片

    1. 使用环境 arduino IDE ESP32 主控 屏幕使用 ST7789 驱动,240*240像素TFT屏幕 LVGL的环境搭建查看文章: https://blog.csdn.net/shil ...

  8. LVGL学习记录:按键

    按键按下加一 程序 #include <lvgl.h> #include <TFT_eSPI.h>/*If you want to use the LVGL examples, ...

  9. LVGL学习笔记(二):从0到1移植LVGL8.1到STM32平台上(完结篇)

    目录 一:TFT-LCD屏触摸 二:STM32CubeMX配置 三:FT5206触摸芯片驱动代码移植 四:LVGL 移植 4.1 源码下载 4.2 代码移植 4.3 添加源码至工程 4.4 指定头文件 ...

最新文章

  1. 最近很火的 ClickHouse 是什么?
  2. UVA11388GCD LCM
  3. Mysql:一条sql是如何执行的?
  4. android 弹起键盘把ui顶上去的解决办法
  5. Maven解决Failed to instantiate SLF4J LoggerFactory报错
  6. python列表嵌套元组拆分,将包含整数和字符串的列表转换为嵌套元组Python
  7. linux下安装nodejs及cnpm
  8. gamma分布_深度学习需要掌握的 13 个概率分布(含代码)
  9. 《Java程序员修炼之道》.pdf
  10. java统计系统工具类
  11. 基于原生js且非canvas实现的中国象棋(第一版)
  12. 电脑系统pe去广告及恶意软件安装
  13. Pandas实战-Series的方法
  14. html点击下一页表单,在scray/python中单击html表单按钮进入下一页
  15. 17年App Store最新官方审核指南
  16. macos可以升级到指定版本吗_如何升级mac系统版本?
  17. 改变PS1变量的颜色
  18. Spoken English
  19. 物联网专业属于计算机的哪个门类,物联网工程专业属于什么门类
  20. IOS 10 定位问题

热门文章

  1. 海思3519 VIO Sample例程讲解
  2. 2013中国城市养生指数排行出炉啦!桂林排名第7
  3. matlab GUI(2)
  4. 2-3 变量 数据类型 运算符
  5. Invalid configuration information-please run SETUP program. 戴尔笔记本 故障
  6. 入室监控—树莓派上挂红外传感器(python)
  7. 2021年全球电动自平衡滑板车收入大约783.3百万美元,预计2028年达到912.3百万美元
  8. 高中数学:导数与函数核心考点
  9. 今日头条Web端爬虫as,cp值破解
  10. 手把手教你Linux下基于ITK开发基础(1)