MATLAB GUI界面设计 第二章——APP Designer操作正式入门

参考教程:MATLAB App Designer基础教程Matlab GUI界面设计(全集更新完毕-用户界面设计appdesigner(中文)Matlab Gui教程_哔哩哔哩_bilibili

一、一些常用的操作

1、组合与取消组合

(1)使用Ctrl同时选中多个组件,再右键,可将其组合,这样拖动一个组件时,同组合下的其它组件也会被一起拖动。

(2)既然有组合,那么相应地也会有取消组合,这里不再赘述。

2、对齐

同时选中多个组件,右键可以进行对齐操作。

3、组件对象重命名

(1)在组件浏览器中选择一个对象,其对应的组件在画布中会被选中。

(2)双击组件浏览器中的一个对象,可以对其进行重命名,当界面的组件越来越多时,在代码视图中可根据对象的名称进行快速定位。

二、数值字段和文本字段的区别

1、二者的主要区别

(1)数值字段的Value值为数字类型,如整数、浮点数等,为其赋值时按照正常的数值赋值流程操作即可。

(2)文本字段的Value值为字符(串)类型,为其赋值时,字符(串)要加上双引号或单引号。

2、案例------利息计算APP

(1)新建一个工程,首先进行前端设计,如下图所示,其中添加的编辑字段均为数值字段,如果使用文本字段,在试运行时将会报错。

(2)给按键"一键计算"增加回调函数,填入如下代码。

Matlab 复制代码
% 赋值操作
g_principal = app.principal.Value;  % 获取本金值并赋给变量g_principal
g_interest_rate = app.interest_rate.Value * 0.01;  % 获取利率值并赋给变量g_interest_rate
g_depository_period = app.depository_period.Value;  % 获取存期值并赋给变量g_depository_period

% 运算操作
g_interest = g_principal * g_interest_rate * g_depository_period;   % 计算利息并赋给变量g_interest

% 结果显示操作
app.interest.Value = g_interest;  % 利息文本编辑字段的内容改为g_interest的值

(3)试运行程序,验证结果是否正确。

(4)按键组件可以增加图标,不过需要注意的是,凡是在编程时只要引用到了外部文件,路径必须要先添加进MATLAB中。

三、画布的回调函数

1、概述

除了画布下的各组件以外,画布一样可以添加回调函数,具体有画布初始化回调函数、画布关闭回调函数和画布大小改变回调函数。

2、三个画布回调函数的调用时机

(1)StartFcn会在画布被创建的时候调用一次,程序员可以在里面添加一些组件初始化代码,如在坐标区显示一张图片(坐标区在第四章会进行介绍),这样用户在打开APP时,就不会看到坐标区原始的图像,而是一张初始化的图片。

(2)CloseRequestFcn会在画布被销毁的时候调用一次,程序员可以在里面添加一些保存重要信息至本地文件的代码,如保存用户退出前的操作数据,下次用户再打开APP时,通过StartFcn将这些操作数据全部初始化上去。

(3)SizeChangeFcn会在画布大小被用户改变时调用一次,程序员可以在里面添加一些重新设置组件位置和大小的代码,以适应画布大小的变化。

四、函数的封装和调用

1、函数的封装

(1)在MATLAB GUI设计的代码视图中,函数体以外的代码是不能随意增删改的,如果希望在代码视图中封装一些函数,可在左上角选择增加函数,这样MATLAB就会在代码视图添加一个空函数供程序员编辑(需要注意,首个参数需要为"app",这是自动添加的,不需要删掉)。

(2)虽然函数封装可以在GUI设计中实现,但这个函数是封装在画布对象中的,当画布对象被删除时,如果内部封装的函数过多,那么析构函数的执行时间也会较长,所以一般建议将通用的函数封装在其它M文件中,GUI设计需要调用它们时直接从M文件调用即可。

2、函数的调用

跟正常的函数调用一样,函数有定义后按照正常的语法调用即可,如果是在代码视图中定义的函数内,首个输入参数需要为"app",此处不再演示。

相关推荐
code bean20 分钟前
【C#】获取不重复的编码(递增,非GUID)
开发语言·c#
阿里嘎多哈基米30 分钟前
二、JVM 入门——(三)栈
java·开发语言·jvm·线程·
千码君201637 分钟前
Axure:如何将SVG转换为形状
ui·axure
雷达学弱狗1 小时前
anaconda本身有一个python环境(base),想用别的环境就是用anaconda命令行往anaconda里创建虚拟环境
开发语言·python
燃尽余火1 小时前
Knife4j 文档展示异常的小坑
java·开发语言·spring
爬虫程序猿2 小时前
利用 Java 爬虫按关键字搜索 1688 商品详情 API 返回值说明实战指南
java·开发语言·爬虫
Bling_Bling_12 小时前
ES6新语法特性(第二篇)
开发语言·前端·es6
乘风归趣2 小时前
spire.doc在word中生成公式
java·开发语言·word
土拨鼠不是老鼠2 小时前
windows 下 使用C++ 集成 zenoh
开发语言·c++
smilejingwei3 小时前
数据分析编程第五步:数据准备与整理
大数据·开发语言·数据分析·esprocspl