让开源按键组件MultiButton支持菜单操作(事件驱动型)
看到之前一个老友写的MultiButton开源按键组件的剖析讲解,它的设计思想简洁且高效,以下是他的博客介绍的MultiButton这个教程:
MultiButton | 一个小巧简单易用的事件驱动型按键驱动模块
至于介绍和使用在这里我就不多说了,相信看上面这篇文章你应该就懂了,但我想,能不能跟菜单操作绑定在一块呢?这样我不就可以利用起来,实现一个高效稳定的菜单+按键结合状态机框架?
纵观网上很多写菜单框架的,要不写得太死板,要不太冗长了,超级麻烦,也不好维护和升级,我的项目设计原则:简单看得懂,实用,稳定。
通常一些手持式设备都会有各种各样的按键,比如左、中、右、确定、返回、电源键等等,以我目前公司的产品,一般就这几个按键。
但公司的产品主要的业务逻辑还是应用,应用逻辑其实就是利用按键+页面的形式来体现,这就少不了需要实现一套简单、高效、稳定、可拓展、可维护的菜单+按键的软件框架,有了这么一套好用的框架,后面随便换一个产品,就不用重新再去开发了,我们就可以专注于应用实现,把精力放在更有意义的软件业务逻辑上来。
接下来我们在MultiButton的.h文件中添加菜单框架相关的结构体以及一些枚举:
/*菜单,具体是哪个页面,这个留给用户自己去添加*/
typedef enum
{MAIN_PAGE = 0,LOG_PAGE,
} MENU;/*事件值,可以留给用户自己去定义,这里我定义了一些我需要的事件
让开源按键组件MultiButton支持菜单操作(事件驱动型)相关推荐
- 开源按键组件Multi_Button的使用,含测试工程
之前的文章中介绍过按键的处理方法<多功能(单击.双击.长按)按键设计>,今天再来分享另外一种方式:MultiButton. 1.Multi_Button简介 MultiButton 是Gi ...
- 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...
- real210移植记录-支持eMMC,增加菜单操作
本次记录的移植是使该u-boot支持eMMC,开发板为real210最新版的开发板,标配eMMC 8GB flash,之前的移植都是在之前的210硬件上进行的核心板版本为v2,flash为nand 5 ...
- 内网穿透工具(永久免费、永不限速、开源)、一键启动、页面操作(支持window,mac),自定义二级域名
java 内网穿透工具(net-penetrate).永久免费.永不限速.开源.一键启动.页面操作(支持window,mac),自定义二级域名 介绍 完全开源,免费使用,不会有人窃取你的信息(可看源码 ...
- vue自动滚动组件 可以支持鼠标滚轮操作
vue自动滚动组件 可以支持鼠标滚轮操作 <!-- *@AutoScrollList *@author GYY *@date 2022/7/20 11:22 --> <templat ...
- 单片机按键开发库-支持连击、长按等操作
Multi-Function Button Dectection Multi-Function Button Dectection,简称MFBD,是一个基于嵌入式C语言的按键库,自动消抖,支持单击.长 ...
- 【嵌入式开源库】MultiButton的使用,简单易用的事件驱动型按键驱动模块
MultiButton 简介 下载 使用介绍 工程移植 代码分析 完整使用流程 实验效果 简介 MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块,可无限量扩展按键,按键事件的回调异步 ...
- Vue-Blu——组件丰富,样式美观的新兴Vue开源Vue组件
Vue-Blu是基于Vuejs和Bulma开发的开源UI组件库.旨在为PC端的前端开发(特别是中后台产品)提供一个快速且灵活的解决方案. Bulma是一个基于Flexbox的免费开源CSS框架,已有2 ...
- antd vue form 手动校验_Vue 开发者不可错过的五款开源扩展组件
自 2014 年正式对外发布以来,Vue 凭借着入门容易.资料丰富.框架功能完善等优势,成为国内许多前端开发者在众多 JavaScript 框架中的首选.Gitee 上这些优秀的开源 Vue 组件也侧 ...
最新文章
- mstsc连接远程桌面如何挂载本地磁盘
- 自动化测试框架搭建-参数化-3
- php 获取URL 各部分参数
- 强烈推荐!分享一个持续连载的《特征工程小锦囊》项目,代码已开源!
- 递归方式-全排列生成算法
- 刷新页面 数组轮播
- 【JavaWeb】HTML+CSS
- 双 11 模块 79.34% 的代码是怎样智能生成的?
- 循环取矩阵的某行_一文搞懂RNN(循环神经网络)基础篇
- sklearn.metrics —— 混淆矩阵及其绘制、Accuracy/Precision/Recall/F1-score
- ApiException
- postfix 配置
- 中国大学MOOC伦理学题库及答案
- 数据包络分析方法与maxdea软件_奥林巴斯OmniScan X3探伤仪软件升级,缺陷图像无处藏...
- 用c写按键精灵脚本语言,按键精灵脚本代码大全 按键精灵命令使用方法
- Android Behavior之ViewPager+Fragment+RecyclerView实现吸顶效果
- CSP CCF: 202112-3 登机牌条码 (C++)
- 免费的crm系统部署在自己的服务器,CRM软件的三种部署方式
- 将Jar包设置为开机自启
- 如何不靠运气变得富有 (四) —— 致富与运气无关