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

整理时间:2020-03-03

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

在这里插入图片描述

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

在这里插入图片描述
哇塞,这么酷炫吊炸天,这么多帅气的控件,还有集成了了一些航空仪表等。
把GUI比作土娃娃,那么appdesigner 就是 高富帅。
颜值很高,不过这又有啥,对于我们这种做技术的工程师,最打动内心还是它的功能,至于这么花哨的有毛用,要是中看不中用,能干活就行,难道就是为了这么几个好看的组件。

阶段2:内心的害怕与抵触
相比GUI,除了高颜值,appdesigner 还把代码和界面设计集成到一个工程文件中,这点真是好,很方便。
无意发现,还有一点,就是即使你matlab工作路径改变了,appdesigner可以依旧运行良好。
在这里插入图片描述
啊,这些自动生成的基础代码,怎么是这个样子。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)没有“选项组卡”组件
导致界面和 摊大饼 一样,控件一多,界面越大,大到显示器无法显示。
和盖房子一样,土地本来就有限,不能合理利用土地资源。
有了选项组卡,你可以把把房子 盖“高”。
LmNzZG4ubmV0L2hhaGFoYWhoYWhoYQ==,size_16,color_FFFFFF,t_70)
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的工具了。

与时俱进才能不被淘汰!


结束。。。

发布了106 篇原创文章 · 获赞 90 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/hahahahhahha/article/details/104633956