Matlab的GUI设计

文章介绍了AppDesigner不同版本的特点,如2017b引入menu控件,2018a的mlapp兼容性,以及2019b的3D画图功能。mlapp文件的基本格式包括appModel.mat和document.xml等组件。回调函数和常见控件(如Button和UITable)的属性被讨论,同时文章探讨了MVC模式在设计GUI中的应用。此外,还提到了将AppDesigner界面与串口调试助手结合的示例,以及遇到的一些限制。最后,文章提到了如何使AppDesigner置顶和将GUI导出为m文件。
摘要由CSDN通过智能技术生成

AppDesigner


20200328

各个版本的特点

  • 在2017b版本中,引入了menu控件
  • 在2018a版本中,加入了mlapp向前兼容功能,可以将mlapp另存为2016、2017等版本
  • 2019b版本的Axies支持3D画图功能
    在这里插入图片描述

mlapp文件基本格式

将mlapp文件作为zip文件打开,可以看到文件结构如下
在这里插入图片描述

文件描述
_rels/.rels似乎和APP无关
[Content_Types].xml似乎和APP无关
metadata/coreProperties.xml包含APP的创建、更新时间信息
metadata/mwcoreProperties.xml包含APP对应的Matlab版本信息
metadata/mwcorePropertiesExtension.xml包含Matlab的信息
appdesigner/appModel.mat包含APP的部分代码信息
matlab/document.xml包含了APP的全部代码信息

对于2017版本,appData.CodeData.EditableSection.Code包含的是APP中可编辑的代码内容
对于2019版本,APP的信息包含在code、components变量中
在这里插入图片描述

AppDesigner的回调函数

在这里插入图片描述

常见控件的属性

Button对象的主要属性
在这里插入图片描述

UITable对象的主要属性
在这里插入图片描述

MVC模式

MVC模式设计GUI

在这里插入图片描述

模型(Model):负责程序的内在逻辑;
视图(View):负责构造,展⽰⽤户界⾯,可直接使用app designer设计;
控制器(Controller):负责处理⽤户输⼊

参照《MATLAB面向对象编程》一书提供的范例,使用app designer模拟设计,也是折腾了一阵子,才使得MATLAB的命令窗口中没有出现warnings。大致有以下几点要注意,

  • 如果直接在app designer的按钮中设置回调函数,则生成的回调函数模板为xxxx(app, event),不是xxxx(app,src,event)的格式,导致运行过程中会出现警告
  • 如果回调函数在Controller类中,注册侦听函数时,直接使用形如@app.controlObj.callback_Button_WithDrawPushed的方式是行不通的,没有真正将该函数设置为回调函数
  • 可以为APP设置输入参数

MVC简单使用

部分代码如下图
在这里插入图片描述
使用虚拟串口软件,将app与串口调试助手相连接,测试情况如下图,
在这里插入图片描述
需要注意的是其中,uitable空间可以更改每行的背景色,但是无法单独设置每行的字体颜色(2019b版本不支持html设置字体的方法)。由此想到,虽然使用appdesigner设计GUI时,可以利用matlab提供的丰富的函数,但它提供的控件在易用上还是不如VS提供的

其他

让app designer置顶

在github上找到uifigureOnTop函数,可以实现该功能

将Guide的GUI导出为m文件

在这里插入图片描述

将app编译为exe

在这里插入图片描述

将app中的多个控件组合在一起

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值