关于基于RTGUI进行新UI开发的经历

本文作者分享了基于RTGUI开发用户界面的经验,包括从最初的1.0版本到2.0版本的演进过程。RTGUI在中文支持、线程契合、事件管理等方面展现出优势,但也存在文档不足等问题。作者通过自定义控件和事件处理,实现了界面搭建和通讯功能。2.0版本引入了更成熟的架构和资源管理,提高了可维护性。尽管面临性能和资源消耗的挑战,作者已开始构思更加优化的UI3.0。
摘要由CSDN通过智能技术生成

        断断续续利用rtgui开发也有一年多时间了。这个时间对很多刚毕业出来的人来说,其实也不算多长,因为刚出校门的无非就是运气好的到大公司吃香喝辣,拿钱多、做事少,运气背的到小公司给小气老板各种蹂躏摧残,永远做不完的事跟小的可怜的薪水。。。。当然,我运气没有那么好,但是也没有坏到那种地步,只不过,没多少钱就是了。

        牢骚发完了,说说前阵子开发完准备不在添砖加瓦的2。0UI吧,这套UI其实是针对RTGUI的简单应用。虽然RTGUI确实没有什么文档资料,例程什么的也严重短缺,bug也是随着应用深入曝了不少个,但是我还是很愿意向你们保证,这是个很优秀的GUI,当然它的优秀跟UCGUI不同,它没有UCGUI那么强大的稳定性,也没有UCGUI那么好的看锯齿与alpha半透明显示效果。但是它独有的跟RTT系统线程契合,UI线程事件管理,文件系统字库支持,多格式图片支持,多窗口管理(这个功能我就不吐槽了,看应用场合来评论它好坏把),确实是很有吸引力的,想到这我突然很想吐槽UCGUI了,为什么就不会支持下文件图片,非得用转换器去转。。。。


        回归正题,我做UI的原因就是有一大帮子任务乱丢的老板,希望做一个可以不改程序来搭建界面以及通讯控制下位机的显示屏,当然,成本必须是不会很高。由于当时考虑到UCGUI对中文支持不好,我偏向了RTGUI,在它基础上滚了又滚。。。当然是因为受到的帮助非常的少,(这也是我一直以来的经历把。不过做什么,上论坛都不会有人回答我问题,包括以前STM32刚开始用,做zigbee,调试sd卡,弄sclickedit环境\以及一直rx62n到rtt。伸手党虽然多,但是国内高手应该也不少的。只不过不大愿意帮下忙而已,所以后来的我就偏向于自己解决问题,基本上很少上论坛问东西,因为知道问了也是白问。我相信很多跟我一样的菜鸟都是这么经历过来的)。。。在经过多次思考,代码推翻重整,方向定向等过程,最终挖了很多个坑之后,勉强用RTGUI0.3版搭了UI1.0,从这个时候起才真真正正的开始RTGUI的基本应用。方案其实很简单,通过编写widget的派生控件实现功能空间,比如按键,指示灯,数值输入框等等,然后将它属性定好,事件也定制好,然后再定义空间解析结构,用ascii编写,约定好结构的对应位置与对应参数,再编写一段代码去读取这些参数,然后再利用这些参数创建对应控件放到对应的view里面(0.3版本rtgui是具有view 跟workbench的),然后接着再对控件进行处理,比如整合到更新监控列表\控制链表里面,生成页面通信消息队列等。这其中涉及的组件也不多,也就是个dfs跟rtgui。驱动也不多,就是按键驱动,触摸驱动,usbhost驱动,spi flash驱动,lcd驱动。基本功能相当于简单功能的组态屏。

        当然,因为是第一版的缘故,对很多概念都没有了解透彻(实际上我有个不好的习惯,就是当走路或者静下心来的时候,就会对做过的事情进行很多反复推敲琢磨,对于这个项目,我经常走路走神到想下一步该做什么, 怎么利用资源去实现更好。。。。等等之类的想法,虽然也每一偶因此少撞过人,幸运的是从来灭有撞过汽车,这个UI也是在这么反反复复推敲的产物,但是终究不是那个领域的人ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值