看到之前一个老友写的MultiButton开源按键组件的剖析讲解,它的设计思想简洁且高效,以下是他的博客介绍的MultiButton这个教程:
MultiButton | 一个小巧简单易用的事件驱动型按键驱动模块
至于介绍和使用在这里我就不多说了,相信看上面这篇文章你应该就懂了,但我想,能不能跟菜单操作绑定在一块呢?这样我不就可以利用起来,实现一个高效稳定的菜单+按键结合状态机框架?

纵观网上很多写菜单框架的,要不写得太死板,要不太冗长了,超级麻烦,也不好维护和升级,我的项目设计原则:简单看得懂,实用,稳定。

通常一些手持式设备都会有各种各样的按键,比如左、中、右、确定、返回、电源键等等,以我目前公司的产品,一般就这几个按键。

但公司的产品主要的业务逻辑还是应用,应用逻辑其实就是利用按键+页面的形式来体现,这就少不了需要实现一套简单、高效、稳定、可拓展、可维护的菜单+按键的软件框架,有了这么一套好用的框架,后面随便换一个产品,就不用重新再去开发了,我们就可以专注于应用实现,把精力放在更有意义的软件业务逻辑上来。

接下来我们在MultiButton的.h文件中添加菜单框架相关的结构体以及一些枚举:

/*菜单,具体是哪个页面,这个留给用户自己去添加*/
typedef enum
{MAIN_PAGE = 0,LOG_PAGE,
} MENU;/*事件值,可以留给用户自己去定义,这里我定义了一些我需要的事件

让开源按键组件MultiButton支持菜单操作(事件驱动型)相关推荐

  1. 开源按键组件Multi_Button的使用,含测试工程

    之前的文章中介绍过按键的处理方法<多功能(单击.双击.长按)按键设计>,今天再来分享另外一种方式:MultiButton. 1.Multi_Button简介 MultiButton 是Gi ...

  2. 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)

    在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...

  3. real210移植记录-支持eMMC,增加菜单操作

    本次记录的移植是使该u-boot支持eMMC,开发板为real210最新版的开发板,标配eMMC 8GB flash,之前的移植都是在之前的210硬件上进行的核心板版本为v2,flash为nand 5 ...

  4. 内网穿透工具(永久免费、永不限速、开源)、一键启动、页面操作(支持window,mac),自定义二级域名

    java 内网穿透工具(net-penetrate).永久免费.永不限速.开源.一键启动.页面操作(支持window,mac),自定义二级域名 介绍 完全开源,免费使用,不会有人窃取你的信息(可看源码 ...

  5. vue自动滚动组件 可以支持鼠标滚轮操作

    vue自动滚动组件 可以支持鼠标滚轮操作 <!-- *@AutoScrollList *@author GYY *@date 2022/7/20 11:22 --> <templat ...

  6. 单片机按键开发库-支持连击、长按等操作

    Multi-Function Button Dectection Multi-Function Button Dectection,简称MFBD,是一个基于嵌入式C语言的按键库,自动消抖,支持单击.长 ...

  7. 【嵌入式开源库】MultiButton的使用,简单易用的事件驱动型按键驱动模块

    MultiButton 简介 下载 使用介绍 工程移植 代码分析 完整使用流程 实验效果 简介 MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步 ...

  8. Vue-Blu——组件丰富,样式美观的新兴Vue开源Vue组件

    Vue-Blu是基于Vuejs和Bulma开发的开源UI组件库.旨在为PC端的前端开发(特别是中后台产品)提供一个快速且灵活的解决方案. Bulma是一个基于Flexbox的免费开源CSS框架,已有2 ...

  9. antd vue form 手动校验_Vue 开发者不可错过的五款开源扩展组件

    自 2014 年正式对外发布以来,Vue 凭借着入门容易.资料丰富.框架功能完善等优势,成为国内许多前端开发者在众多 JavaScript 框架中的首选.Gitee 上这些优秀的开源 Vue 组件也侧 ...

最新文章

  1. mstsc连接远程桌面如何挂载本地磁盘
  2. 自动化测试框架搭建-参数化-3
  3. php 获取URL 各部分参数
  4. 强烈推荐!分享一个持续连载的《特征工程小锦囊》项目,代码已开源!
  5. 递归方式-全排列生成算法
  6. 刷新页面 数组轮播
  7. 【JavaWeb】HTML+CSS
  8. 双 11 模块 79.34% 的代码是怎样智能生成的?
  9. 循环取矩阵的某行_一文搞懂RNN(循环神经网络)基础篇
  10. sklearn.metrics —— 混淆矩阵及其绘制、Accuracy/Precision/Recall/F1-score
  11. ApiException
  12. postfix 配置
  13. 中国大学MOOC伦理学题库及答案
  14. 数据包络分析方法与maxdea软件_奥林巴斯OmniScan X3探伤仪软件升级,缺陷图像无处藏...
  15. 用c写按键精灵脚本语言,按键精灵脚本代码大全 按键精灵命令使用方法
  16. Android Behavior之ViewPager+Fragment+RecyclerView实现吸顶效果
  17. CSP CCF: 202112-3 登机牌条码 (C++)
  18. 免费的crm系统部署在自己的服务器,CRM软件的三种部署方式
  19. 将Jar包设置为开机自启
  20. 如何不靠运气变得富有 (四) —— 致富与运气无关

热门文章

  1. C#小工具 ---- 压缩图片并指定图片大小
  2. python 三维地球代码_Python地图可视化三大秘密武器
  3. 使用 cocos creator 3.0 制作抽奖小游戏
  4. JSP一个抽奖小游戏
  5. 宏基vn7-591g 固态硬盘安装
  6. Elasticsearch查询的基本使用
  7. 常用英语口语175句
  8. c++/c 大整数乘法的分治与递归实现(string存储)
  9. 微信小程序-MD5加密
  10. 如何让电脑带双显示屏,显示不同的内容