Matlab的GUI设计

文章目录

  • AppDesigner
    • 各个版本的特点
    • mlapp文件基本格式
    • AppDesigner的回调函数
    • 常见控件的属性
    • MVC模式
      • MVC模式设计GUI
      • MVC简单使用
    • 其他
      • 让app designer置顶
      • 将Guide的GUI导出为m文件
      • 将app编译为exe
      • 将app中的多个控件组合在一起

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中的多个控件组合在一起

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/42827.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

^(按位异或)操作符详解

因为未知,所以全力以赴 目录 例1.实现两个数的交换 例2.找出单身狗 1.简单版 2.进阶版 大家好,我是纪宁。这篇博客介绍^操作符及使用案例。 位操作符是对操作数的二进制补码进行操作。^就是位操作符的一种,叫按位异或操作符。计算结果是…

《零基础入门学习Python》第055讲:论一只爬虫的自我修养3:隐藏

0. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式! 上节课我们说过了,有一些网站比较痛恨爬虫程序,它们不喜欢被程序所访问,所以它们会检查链接的来源,如果说来源不是正…

【CN-Docker】window11下Docker下开启kubernetes

1. 安装Docker 安装docker步骤如下: 下载Docker启用hyper-v 2.1.powershell,管理员运行Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All安装wsl配置Docker镜像加速地址(阿里云) 4.1. "registry-mirrors": [&quo…

让GPT人工智能变身常用工具-上

1.密码生成器:GPT为您创建安全密码 想象GPT作为您的个人密码生成器,负责从头到尾为您创建复杂且安全的密码。您只需要告诉他您的密码需求,比如密码的长度,是否包含大写字母、小写字母、数字或特殊字符,他会立即为您生成一个复杂但经过深度设计的密码。 例子: 我希望您…

Selenium 修改 HTTP 请求头三种方式

目录 前言: 什么是 HTTP 请求头 需要更改 HTTP 请求请求头 Selenium 修改请求头 Java HTTP 请求框架 代码实战 使用反向代理 使用 Firefox 扩展 下载火狐浏览器扩展 加载火狐扩展 设置扩展首选项 设置所需的功能 完整自动化用例 前言: Sele…

内存函数及其模拟实现

身体扛不住的时候,意志会带你杀出重围 文章目录 一、memcpy函数 函数介绍 模拟实现 二、memmove函数 函数介绍 模拟实现 三、memset函数 函数介绍 模拟实现 大家好,我是纪宁。这篇文章给大家介绍C语言中常见的内存处理函数。 一、memcpy函数 …

blender 基础材质篇

材质展示 材质背景介绍 什么是PBR? PBR 全称为 Physically Based Rendering,译为基于物理属性的引擎渲染,也就是说会把物质的颜色、粗糙度、高光属性等进行分别处理,使物质体现出更真实的感觉; 什么是BRDF&#xff…

Vue.js基础简答题

系列文章目录 后续补充 文章目录 系列文章目录前言一、库与框架的区别是什么?二、Vue.js 的核心特性有哪些?三、什么是数据驱动视图?四、MVVM 模型各部分含义是什么,在 Vue.js 中分别对应哪些功能?五、el 选项的作用是…

安全开发-JS应用原生开发JQuery库Ajax技术加密编码库断点调试逆向分析元素属性操作

文章目录 JS原生开发-文件上传-变量&对象&函数&事件JS导入库开发-登录验证-JQuery库&Ajax技术JS导入库开发-编码加密-逆向调试 JS原生开发-文件上传-变量&对象&函数&事件 1、布置前端页面 2、JS获取提交数据 3、JS对上传格式判断 <script>…

数据仓库发展历史

数据仓库发展历史 一、演变 数据仓库是企业中用于存储、整合和分析数据的关键组件。随着时间的推移&#xff0c;数据仓库经历了三代演化&#xff1a;从需求驱动到平台化、从平台化到智能&#xff08;AI&#xff09;化 二、第一代&#xff08;过时&#xff09; 第一代数据仓…

第四讲:MySQL中DDL一些基本数据类型及表的创建、查询

目录 1、创建表:2、DDL一些基本数据类型&#xff1a; 1、创建表: 部分单词及解析&#xff1a; 1、tables:表 2、comment:评论&#xff0c;解释 3、gender:性别 4、neighbor&#xff1a;邻居 1、创建表&#xff1a;&#xff08;注&#xff1a;在自定义数据库操作&#xff0c;…

【itext7】itext7操作PDF文档之添加表单控件(单行文本框、多行文本框、单选框、复选框、下拉框、按钮)

这篇文章&#xff0c;主要介绍itext7操作PDF文档之添加表单控件&#xff08;单行文本框、多行文本框、单选框、复选框、下拉框、按钮&#xff09;。 目录 一、itext操作PDF表单 1.1、添加单行文本框 1.2、添加多行文本框 1.3、添加单选框 1.4、添加复选框 1.5、添加下拉框…

Pytorch迁移学习使用Resnet50进行模型训练预测猫狗二分类

目录 1.ResNet残差网络 1.1 ResNet定义 1.2 ResNet 几种网络配置 1.3 ResNet50网络结构 1.3.1 前几层卷积和池化 1.3.2 残差块&#xff1a;构建深度残差网络 1.3.3 ResNet主体&#xff1a;堆叠多个残差块 1.4 迁移学习猫狗二分类实战 1.4.1 迁移学习 1.4.2 模型训练 1.…

(css)滚动条样式

(css)滚动条样式 效果&#xff1a; /*滚动条整体样式*/ ::-webkit-scrollbar {width: 2px;/*高宽分别对应横竖滚动条的尺寸*/height: 10px; } ::-webkit-scrollbar-thumb {/*滚动条里面小方块*/border-radius: 10px;width: 2px;height: 60px;background: linear-gradient(0deg,…

CentOS7系统MBR、GRUB2、内核启动流程报错问题

目录 &#x1f969;Linux启动流程 &#x1f969;MBR修复 &#x1f36d;1、模拟损坏 &#x1f36d;2、重启测试 &#x1f36d;3、修复MBR &#x1f36d;4、测试系统 &#x1f969;GRUB2修复 &#x1f36d;1、模拟损坏 &#x1f36d;2、修复GRUB2 &#x1f36d;3、测试系统 &…

03. 自定义镜像 Dockerfile

目录 1、前言 2、构建镜像的方式 2.1、docker commit 2.1.1、先查看下当前的容器 2.1.2、生成该容器镜像 2.1.3、查看镜像列表 2.2、Dockerfile 2.2.1、创建Dockerfile文件 2.2.2、编写Dockerfile文件 2.2.3、构建镜像 2.2.4、使用该镜像生成容器 3、Dockerfile 3…

GO内存模型(同步机制)

文章目录 概念1. 先行发生 编译器重排同步机制init函数协程的创建channelsync 包1. sync.mutex2. sync.rwmutex3. sync.once atomic 参考文献 概念 1. 先行发生 The happens before relation is defined as the transitive closure of the union of the sequenced before and …

【微信小程序】使用iView组件库中的icons资源

要在微信小程序中使用iView组件库中的icons资源&#xff0c;需要先下载并引入iView组件库&#xff0c;并按照iView的文档进行配置和使用。 以下是一般的使用步骤&#xff1a; 下载iView组件库的源码或使用npm安装iView。 在小程序项目的app.json文件中添加iView组件库的引入配…

PHP中常用数组排序算法

一&#xff1a;冒泡排序 1&#xff1a;算法步骤 比较相邻项的值&#xff0c;如果前者比后者大&#xff0c;交换顺序。 进行一轮比较后&#xff0c;最后一个值为最大的值。 进行下一轮比较&#xff0c;比上次少比较一项。 以此类推&#xff0c;比较剩下最后一项的时候&#…

【Linux进程】进程控制(上) {进程创建:fork的用法,fork的工作流程,写时拷贝;进程终止:3种退出情况,退出码,常见的退出方法}

一、进程创建 1.1 fork的初步认识和基本使用 在linux中fork函数是非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include <unistd.h> pid_t fork(void);返回值&#xff1a;子进程中返回0&#xff0c;父进…