lv_btn

lv_btn按钮其实是lv_cont的复杂变体,可以包含子对象,常见的子对象是lv_label标签,相关API在lv_btn.h,lv_btn有6种状态

/** Possible states of a button.* It can be used not only by buttons but other button-like objects too*/
enum {LV_BTN_STATE_RELEASED,LV_BTN_STATE_PRESSED,LV_BTN_STATE_DISABLED,LV_BTN_STATE_CHECKED_RELEASED,LV_BTN_STATE_CHECKED_PRESSED,LV_BTN_STATE_CHECKED_DISABLED,_LV_BTN_STATE_LAST, /* Number of states*/
};
typedef uint8_t lv_btn_state_t;

状态变化

非切换按钮

LV_BTN_STATE_RELEASED-->LV_BTN_STATE_PRESSED-->LV_BTN_STATE_RELEASED

切换按钮
第一次点击时

LV_BTN_STATE_CHECKED_RELEASED-->LV_BTN_STATE_CHECKED_PRESSED-->LV_BTN_STATE_RELEASED

第二次点击

LV_BTN_STATE_RELEASED-->LV_BTN_STATE_PRESSED-->LV_BTN_STATE_CHECKED_RELEASED

布局和自适应

因为本质是lv_cont,所以layout和fit类型和lv_cont一致

样式

/**Styles*/
enum {LV_BTN_PART_MAIN = LV_OBJ_PART_MAIN,_LV_BTN_PART_VIRTUAL_LAST,_LV_BTN_PART_REAL_LAST = _LV_OBJ_PART_REAL_LAST,
};
typedef uint8_t lv_btn_part_t;

例子

static void event_handler(lv_obj_t * obj, lv_event_t event)
{if(event == LV_EVENT_CLICKED) {printf("Clicked\n");}else if(event == LV_EVENT_VALUE_CHANGED) {printf("Toggled\n");}printf("%x,:%d\n", obj, lv_btn_get_state(obj));
}void lv_ex_btn_1(void)
{lv_obj_t * label;lv_obj_t * btn1 = lv_btn_create(lv_scr_act(), NULL);/*创建btn1*/lv_obj_set_event_cb(btn1, event_handler);/*设置btn1回调函数*/lv_obj_align(btn1, NULL, LV_ALIGN_CENTER, 0, -40);label = lv_label_create(btn1, NULL);/*btn1内创建label*/lv_label_set_text(label, "Button");printf("%x,btn1:%d\n", btn1,lv_btn_get_state(btn1));lv_obj_t * btn2 = lv_btn_create(lv_scr_act(), NULL);/*创建btn2*/lv_obj_set_event_cb(btn2, event_handler);/*设置btn2回调函数*/lv_obj_align(btn2, NULL, LV_ALIGN_CENTER, 0, 40);lv_btn_set_checkable(btn2, true);/*设置为toggle形按钮*/lv_btn_toggle(btn2);/*切换按钮状态*/lv_btn_set_fit2(btn2, LV_FIT_NONE, LV_FIT_TIGHT);/*设置按钮自适应模式*/label = lv_label_create(btn2, NULL);/*btn2内创建label*/lv_label_set_text(label, "Toggled");printf("%x,btn2:%d\n", btn2, lv_btn_get_state(btn2));
}

LVGL lv_btn 按钮(9)相关推荐

  1. ESP-BOX LVGL ask_wdt: Task watchdog got triggered问题 物联网

    文章目录 前言 一.项目架构 二.ESP-BOX(AED模块) 1.警报啸叫 2.GUI设计部分 3.AED与服务器连接部分 三.ESP-BOX(用户模块) 1.GUI设计部分 2.语音报警部分 3. ...

  2. RT-Thread 模拟器 simulator LVGL控件:button 按钮样式

    环境搭建 RT-Thread 4.1.0 BSP 模拟器 simulator LVGL软件包 功能 LVGL 画两个按钮,点击按钮,产生按钮事件 按钮应用[样式],看起来美观一点 方法 按钮控件,LV ...

  3. LVGL学习 lv_btn

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 lv_btn 一.功能 二.事件 三.Part 四.使用步骤 1.创建按钮 2.设置背景颜色 五.示例 1.生成一个普通按钮 ...

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

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

  5. LVGL 源码分析大全

    LVGL 源码分析大全目录 1.概述 2.已完成源码分析文章列表 2.1.硬件抽像层(hal) 2.2.核心框架(core/misc) 2.3.定制功能 2.4.内部接口 2.5.案例讲解 2.6.其 ...

  6. 启明云端分享|LVGL官方认证的开发板,到底有多牛

    近日,由启明云端出品的IDO-SMLCD72-V1-2EC 获得了 Professinal LVGL 板卡认证,这意味着它是具有高性能.质量和稳健性的顶级板卡. i.MX RT595-EVK 的标准 ...

  7. arduino tft 方向_ESP32在Arduino环境下玩转 LVGL,ESP32移植LVGL详细教程

    微信关注 "DLGG创客DIY"设为"星标",重磅干货,第一时间送达. ❝ 转载自慕容流年 https://me.csdn.net/qq_41868901 ❞ ...

  8. lvgl的区别 qt_LVGL分析-画面刷新

    LVGL分析 1 littlevgl线程 littlevgl有几个线程,作用是什么? 三个,主线程一个,和在主线程的hal_init函数中创建的另两个sdl线程. 主线程完成一系列初始化工作后,循环每 ...

  9. 嵌入式GUI LVGL『Tableview选项卡控件』介绍

    一. LVGL GUI开关控件的概念 选项卡视图对象可用于组织选项卡中的内容. 二. LVGL GUI开关小部件和样式 Tab 视图对象包含几个部分.主要是 LV_TABVIEW_PART_BG .它 ...

  10. ESP32 开发笔记(四)LVGL控件学习 ColorPicker 颜色选择器控件

    先看效果,创建一个颜色选择器控件,设置事件回调动态显示当前选择的颜色值 开发板购买链接https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.5 ...

最新文章

  1. 适用于SQL Server生产环境DBA的七大技巧
  2. 20155319 2016-2017-2 《Java程序设计》第七周学习总结
  3. Broadcast应用场景分析
  4. 【IMOOC学习笔记】多种多样的App主界面Tab实现方法(二)
  5. Tensorflow:Tensorboard使用
  6. volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域
  7. html 和 body标签的 css 设置
  8. 【算法】赫夫曼编码 解码 实际应用 文件的编码 解码
  9. 各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730
  10. 工业大数据的发展面临哪四大挑战
  11. Linux服务器文件权限被改
  12. MCMC算法—MH算法的Python实现(一)
  13. 医学方面的创业计划书_医学生创业计划书
  14. 产业园区数字孪生规划方案
  15. 网络安全-解密WinRAR捆绑恶意程序并自动上线MSF的原理
  16. [国家集训队]跳跳棋
  17. Apache 301转向技巧
  18. 开发环境搭建:Python(x,y) + Wing IDE4.0.3以及破解
  19. SpringBoot整合Drools
  20. commvault oracle容灾,解析Commvault云管理解决方案如何实现数据的一体化管理

热门文章

  1. python word 表格宽度_RPA手把手——python-docx 设置 word 文档中表格格式
  2. python千人成像_ps怎么制作一个千人成像照片拼图?
  3. 关于iPhone边缘触摸延迟现象
  4. 【node】------node连接mongodb操作数据库------【巷子】
  5. 测试鼠标传感器的软件,鼠标该怎么选择?给大家说下鼠标传感器的差距
  6. 自然语言生成之n-gram
  7. 武汉大学计算机学院2010情景剧,武汉大学金秋情景剧大赛精彩落幕(组图)
  8. 拼多多玩出花的社交电商 你知道多少?四川海昇智深度解析来啦
  9. 拼多多---多多果园怎么玩
  10. Java程序员月薪30K和月薪3K差别在哪?