【MATLAB】摸索2天,果断放弃gui,彻底爱上了appdesigner。

整理时间:2020-03-03

1.与appdesigner初识
最近安装了2019a版本的,玩玩看有没有啥有意思的更新点。
第一天玩了个 实时脚本 编辑,这个可以方便调参数。
2019年,matlab 微信公众号 小迈步 课堂,推 了 一期《appdesigner设计》的介绍。可是当前 没有一是没有2019版本软件,二是工作项目紧等,没有玩。
现在想起来,应该 早早相识玩起来。
我还是想建立一个GUI,可是官方不推荐呀,好吧,玩玩appdesiner 吧。

【MATLAB】摸索2天,果断放弃gui,彻底爱上了appdesigner。_第1张图片

2.初步交往
阶段1:轻视与误解。
装完新软件之后,输入appdesigner。

【MATLAB】摸索2天,果断放弃gui,彻底爱上了appdesigner。_第2张图片
哇塞,这么酷炫吊炸天,这么多帅气的控件,还有集成了了一些航空仪表等。
把GUI比作土娃娃,那么appdesigner 就是 高富帅。
颜值很高,不过这又有啥,对于我们这种做技术的工程师,最打动内心还是它的功能,至于这么花哨的有毛用,要是中看不中用,能干活就行,难道就是为了这么几个好看的组件。

阶段2:内心的害怕与抵触
相比GUI,除了高颜值,appdesigner 还把代码和界面设计集成到一个工程文件中,这点真是好,很方便。
无意发现,还有一点,就是即使你matlab工作路径改变了,appdesigner可以依旧运行良好。
【MATLAB】摸索2天,果断放弃gui,彻底爱上了appdesigner。_第3张图片
啊,这些自动生成的基础代码,怎么是这个样子。classdef,methods,properties,public,private ,这都是什么鬼。我是从硬件工程师半路出家做算法的。大概查了查,哦,这些是面向对象的一些概念。大致理解了 :classdef,是定义一个类 ; methods是方法;properties是属性;public是公有;private是私有。
心里还是怯怯的,不过我已经认识到了。appdesigner 绝对不是GUI的颜值升级版,而是一个全新打造的新玩意儿。

阶段3:相处才知道它的好

拖动一个控件,然后使用另外一个控件获得这个控制的value。
最简单的demo实现了,那这又有啥。
既然都用到了 面向对象 的编程思路了,肯定有绝活。matlab的开发工程师可是一帮 脑袋贼灵光的人。
让我回忆在GUI上的伤与痛楚吧,appdesigner是否能够帮我抚平呢?
GUI的痛:
1)数据传递。
GUI的数据传递,是很多初学者的伤,慢慢摸索成了高手,掌握了其 数据传递的两个大方法,5个小方法。不过,大家还不就只用最简单实用的 global ,以及把数据想办法安排到 控件的属性中。
第一种办法,global,得不断的声明 变量 global,代码很长,对于想声明的全局数据很多时候,很麻烦。
第二个方法, 把数据想办法安排到 控件的属性中,通过找到控件再访问数据,那么数据很大而且很多,数据都不够放。这种把数据安排到控件上的做法,不谈代码效率,你有没有考虑过 数据 寄宿他家的感受吗。差评!
2)没有“选项组卡”组件
导致界面和 摊大饼 一样,控件一多,界面越大,大到显示器无法显示。
和盖房子一样,土地本来就有限,不能合理利用土地资源。
有了选项组卡,你可以把把房子 盖“高”。
【MATLAB】摸索2天,果断放弃gui,彻底爱上了appdesigner。_第4张图片
3)GUI的函数代码编写痛苦,可读性差

一个窗口fig,对应一个大的函数。
随着控件增多,功能复杂,使用 面向过程 的编程会很多。
聪明的人,会把每一个控件的回调函数 整理成一个大的主回调函数,通过switch case 语句,这样代码看起来 大气 有条理。
但是,这样 治标不治本。要想 治本,得大动干戈,来场革命。
对,就是使用“面向对象” 革掉“面向过程”的 命。

4)槽点多多,毕竟是早期产品。

3.彻底爱上

使用了 appdesigner,彻底抚平了我内心的伤,玩起来非常爽。写代码很快乐,越写越爽。
来看,appdesigner是如何抚平内心的伤。
1)数据传递
appdesigner的数据传递,光明正大,简单方便。
放在 整个app的私有属性 里面。想怎么放怎么放,想放啥就放啥。

2)组件不光好看,功能也强大
选项组卡 ,文本区域等等。有很多妙用,后边有空再聊~

3)有了面向对象,界面代码编写很easy~

4.它的好,一时说不完,往后接着聊

组件多,好看等,好处太多。

之后,我想写的有:
《怎么制作一个视频播放器,以便图像算法验证》
《tab组件的一些小技巧》
《如何在textarea上搞一个实时记录日志并刷新》
《appdesigner-code区的代码,各段代码啥意思,各个函数是干啥的。》
。。。

5.声明:不光是喜新厌旧,而是迫于无奈。
早期接触到GUI,它帮了我很多大忙,写一些调试小工具,方便自己调试。
给非matlab编程者,写一些可执行的操作界面,让他们直接面向自己的应用,不必关心底层的代码实现。等等很多很多。
还得感谢GUI。

不过它也过时了,老了,该放到古董店让人观赏了,毕竟它曾经给使用matlab 工程师也立下了 汗马功劳。

matlab从2016年开始,就推出了appdesigner,将不再更新与支持GUI了,对于执念于gui的,可发布了GUI转appdesigner的工具了。

与时俱进才能不被淘汰!


结束。。。

你可能感兴趣的:(MATLAB之APP设计)