Matlab GUI/APP 浅谈(附计算器源码)

今天没有什么段子,也没有心灵鸡汤、毒鸡汤啥的,纯粹聊一聊这些年从有关MATLAB GUI/APP开发中悟出的一点道理,顺便把计算器的源代码给大家。

我刚开始对图形用户界面(GUI)充满了好奇。第一次接触GUI还得从2013年下半年开始,当时大学选修JAVA,其中有一章内容是AWT (Abstract Window Toolkit),授课老师让每个人设计一款简易计算器。得到这个任务后,非常好奇,读了几遍教科书,逛贴吧,网上冲浪,总之一顿骚操作后诞生了一款山寨版的简易计算器,如下图所示:

当时自己觉得非常有成就感,然而却忽略了为什么?为什么要这样设计?本质上少了对科学问题的好奇性和十万个为什么?

后来的一年多把GUI设计扔到了一边,直到2015年后半年,因为要设计一个校表的测试工具,于是重新开始学习Matlab 的基于figure的GUI。

基于figure的GUI最简单的开发方法是利用guide设计器,将一些内部控件(组件)通过拖拽放入到figure等父类容器中,最后给需要与用户交互的控件(组件)编写回调函数即可,其简单、方便是这种方法的优势,但缺陷是在修改界面控件时,需要打开生成的.fig配置文件和相应的源码文件进行修改。

也有一些开发者喜欢利用直接编程方式构建界面,通用的方法可以分为面向过程和面向对象编程两种,值得注意的是也有开发者喜欢将guide设计器和直接编程方式结合的混合方法。

2017年左右,项目需要设计一款界面较为复杂的图像处理软件,刚开始兴致勃勃的就利用guide设计器完成了基础功能,但很快啊,随着用户需求的增加,每次添加控件、实现对应功能时总是要在fig配置文件中重新操作,改变布局,瞬间guide设计器不香了。于是我吃起了基于面向过程的直接编程方法的救命丸,此法大大缩减了些工作量,至少控件的布局不用来回的改动。缺点是需要在控件的回调函数中反复的利用set/getappdata这两个家伙更新和传递数据,显得比较麻烦。

需求在一点点增加,而作为开发者,心中好似一万匹那叫什么马在奔腾…

一次偶然的机会,看到了徐潇的知乎回答贴,让我了解到利用面向对象+设计模式可以很好的解放生产力,能将GUI/APP设计中的逻辑和界面解耦,三人行,必有我师焉。

直接采用面向对象方式可以不用set/getappdata来回的传递数据了,直接利用类的属性这一天然的数据结构,特别方便,这在Appdesigner框架中体现的淋漓尽致。当然最后采用MVC或者HMVC设计模式会更好。

我随后花了一段时间(可以用不务正业来形容),将之前的几个GUI又利用MVC或者HMVC模式重构了一遍,虽然GUI/APP的外貌没变、功能没变,但构建它们的源代码和设计理念发生了质的改变。

后来慢慢明白,就像人生一样,对待同一件事或物,每个人内心体现出的价值观都是不一样的,但不管怎样,都应该树立正确的价值观,相由心生,心正了,相自然正。折射到GUI/APP开发这件事上,其实不管用什么方法,只要实现的功能正确,使用流畅,GUI/APP外观不必花里胡哨,我认为这样的一款GUI/APP它是优秀的!

人们常说不能以貌取人,事实上,我们也不能以外观取GUI/APP

在开发Matlab GUI/APP的道路上尽管内心觉得这是不务正业,也付出了相应的代价,甚至对我来说,学习和研究的过程不亚于写作和发表SCI科技论文的过程,尽管后者能带来各种名利、隐形的金钱,能早点毕业。但在这个过程中让我体会到快乐,能使我内心平静,更多的思考,更多的求知,我想这就是开发Matlab GUI/APP带给我的礼物吧!

最后,聊一聊朋友们关心的计算器的源代码,由于最开始我将基于面向对象+设计模式构建的计算器代码放到了面包多平台,地址:https://mianbaoduo.com/o/bread/YZiak5ts。定价了169元,一般优惠些150元出售。为什么要定这个价格?原因有以下:

  • 在徐潇的那本面向对象的书中(第7章内容)只是对HMVC模式作了介绍,但并没有提供完整的源代码,我在学习时查找了互联网,没有相应的HMVC模式的Matlab源代码示例。
  • 在没有源代码的参考下,需要自己动手实现,思考相应的逻辑,属于出售知识产权。
  • 对基于面向对象+设计模式构建GUI/APP感兴趣的人们。

当然有人愿意购买,也有人觉得太贵了,还有人觉得白嫖一时爽,一直嫖一直爽…

鉴于上面的现象,我思考了下,既然有的朋友觉得上面这种价格贵,那何不用其他一般方法重构,降低价格,让有需要的朋友们购买了,我想朋友们花了钱购买了源代码,自己用起来、修改起来也会一直爽的…

  • 面向对象方法设计的计算器源代码:价格21.6元
  • 面向过程方法设计的计算器源代码:价格16.6元
  • 以上都需要:价格33.66元

价格便宜很多了,欢迎感兴趣、需要的朋友们订购!

**订购方式:**添加微信:wxkh2016或扫描下方二维码添加:

产品截图:

面向对象:

面向过程:

特别注意:先前花费150元购买过的朋友们可以直接联系我,我会将现在的源代码一并发给你们,在此感谢你们的支持!

Matlab GUI/APP 浅谈(附计算器源码)相关推荐

  1. 基于Android平台实现x的跑步应用App设计【附项目源码+论文说明】分享

    基于Android平台实现x的跑步应用App设计演示 摘要 随着手机使用的普及,人们获取与保存信息的方式已经发生了激动人心的转变.智能手机正在逐步融入我们的生活,并影响和改变着我们的生活.由于现在各种 ...

  2. 基于安卓平台实现在线商城系统移动app演示【附项目源码+论文说明】

    基于android实现在线商城系统app演示 项目背景 如今手机的发展非常迅速,手机越来越成为人们不可缺少的东西.手机从最初功能简单的功能机,发展到如今几乎无所不能的智能机,满足了人们的日常需求,手机 ...

  3. Matlab:实现启用混响(附完整源码)

    Matlab:实现启用混响 function audioOut = applyReverb(audio,preDelay,wetDryMix,sampleRate)persistent reverbO ...

  4. 函数图像在图形计算机的应用,浅谈图形计算器在高中函数教学中的应用

    浅谈图形计算器在高中函数教学中的应用 陈理宏广州市花都区教研室(510800) 摘要:函数是高中一个重要内容,在这个内容的学习中应用图形计算器的函数功能和绘图功能,有利于学生加深对函数知识的理解,挖掘 ...

  5. matlab函数 bsxfun浅谈

    matlab函数 bsxfun浅谈 网上关于bsxfun的东西不多,今天需要看到一个,由于原博文插入的图片显示不出来,于是笔者大发善心进行了contrl+V 以及alt+ctrl+A的操作,供大家交流 ...

  6. java仿酷狗音乐源码_【附项目源码】仿酷狗音乐客户端,浅淡动感歌词补充

    原标题:[附项目源码]仿酷狗音乐客户端,浅淡动感歌词补充 1.前言 之前写了几篇关于动感歌词的简单介绍,相信大家还有印象,这里就不多说了,这篇要说的是,关于翻译歌词和音译歌词,以及我在解析和显示这两种 ...

  7. 图像处理课程设计大报告 MATLAB GUI APP实现直方图均衡化、几何变换和加噪滤波

    打包好的程序放在这里了,可以免费免积分下载,需要matlab runtime 9.5环境..mlapp源码等我图像处理课程过了,视评论情况再上传. 谢邀,图像处理96分,还不错,.mlapp源码奉上: ...

  8. 游戏应用市场APP软件下载平台网站源码手机版内附教程

    介绍: PHP游戏应用市场APP软件下载平台网站源码+手机版 可自行打包APP,带下载统计,带多套模板,带图文教程 网盘下载地址: http://kekewangLuo.net/0ypkTeIvoIi ...

  9. 自动化测试如何保持登录状态_自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码...

    一.什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage ...

最新文章

  1. 《Maven 实战》笔记之setting.xml介绍
  2. where 1=1 是什么鬼?
  3. 用神经网络模拟分子:碱金属的氯化物
  4. 怎样在项目中使用git以及github管理(图文详解流程讲解)
  5. VTK:Snippets之WriteImage
  6. php运行代码运行退出为0,php – Selenium测试用例返回进程以退出代码0结束
  7. Android之解决viewpage加载第3个fragment的时候,第一个fragment又重新构建问题
  8. react改变checkbox的文字类型_React Checkbox不发送onChange
  9. Jquery学习总结(5)——jQuery选择器
  10. 【Vue】—数组对象变更检测
  11. php 无法识别oci8,php 连接oracle 无法 启用oci8 解决办法 (摘自oracle官网)
  12. linux tcp文件分包_畅谈linux下TCP(下)
  13. Julia: Join与字符串Array
  14. 如何和下属谈心(转)
  15. Ubuntu 更改默认浏览器
  16. ​【Flutter小记7】​Mac M1 使用 pod install编译常见两种错误解决方案(CocoaPod Error | LoadError)
  17. Termux安装sox但rec录音静音的问题
  18. Frida hook零基础教程
  19. Veritas NetBackup8.1.1汉化
  20. Sybases数据库----安装

热门文章

  1. Mat::ones() 和 Mat::zeros()
  2. psp java gv_〖集中讨论楼〗 [PSP]Jジュエリック・ナイトメアJewelic Nightmare 集中讨论帖 第4页 单向版 下载 ダウンロード download 百度云 网盘...
  3. 文档的新建,打开与保存
  4. mit数据库 matlab,MIT-BIH 心电数据库
  5. Vue中动态渲染输入框并v-model绑定后无法输入
  6. 一款小巧好用的全局鼠标手势软件——MouseInc
  7. Linux下的鼠标手势软件easystroke
  8. CSS3 对文本的基本设置大全
  9. Termux手机终端-逗你玩儿
  10. 远古魔力 | 在Windows 10和Azure App Service里跑上世纪的ASP