Matlab App designer学习笔记
Matlab App designer学习笔记
学习Matlab的GUI设计,在记笔记的同时也方便日后查找。
参考教程:MATLAB App Designer基础教程Matlab GUI界面设计(全集更新完毕-用户界面设计appdesigner(中文)Matlab Gui教程
App designer简介

点击左上角打开App designer。

可以拖动控件放到画布,右侧为控件属性,然后保存运行就可以看见ui界面了。
右上角可以打开代码视图。
制作一个自己的demo
- 鼠标拖动画布右下角可以改变画布大小
- 修改标签(文本)属性。可以修改内容,字体,颜色等等。

-
为了让APP在运行的时候可以变大变小。右侧属性-位置-resize和autoResizeChildren。
-
后台代码编写
右键选择控件,然后添加控件的回调函数。

右上角会显示类和对应的方法,可以查看,不用背。也可以直接拖到代码里进行插入。

-
组合组件

Lamp(信号灯)控件的使用
选择控件——交互性——tooltip。把光标放到上面后会显示提示信息。

toogle(状态) switch开关的使用;strcmp算子

在判断状态的时候会用到strcmp()算子

开关的value值必须在Items里面,比较字符串是否相同

其余几种开关也是一样的使用方法。
坐标轴控件axis函数绘图方法

在按键的回调函数中,定义xy。然后用plot函数实现绘图。需要注意的是,plot输入的第一个参数应该为控件类。
1 | x = 1:0.01:10; |
如果想把多个图像绘制到一个坐标中,需要在两个plot中间插入hold on防止原来的图像被覆盖。
1 | x = 1:0.01:10; |
如果想用坐标区显示图像,先用imread读取图像,然后用imshow显示在坐标轴中,需要注意一定要使用’Parent’参数。
1 | %读取图像 |
可以使用axis()算子隐藏坐标轴。
1 | xis(app.UIAxes,"off"); |
msgbox()用法
可以弹出一个对话框
1 | msgbox("你好","biaoti","help"); |

questdlg()用法
用于弹出可以选择框。
doc questdlg查看详细信息。

delete()用法
delete(app.UIFigure)就可以退出进程。
交互性选择路径

在正则表达式中,*表示一个通配符。
1 | [filename,pathname]=uigetfile({'*.jpg';'*.png';'*.bmp'},"标题") |
disp()为打印函数,会输出括号内的内容
strcat(s1,s2)为字符串链接函数,会将两个字符串连接在一起。用法可以写为strcat(filename,pathname)
如果filename或者pathname为0,isequal(pathname,0),就是没有选中文件。
startupFcn回调函数的使用
开启ui的时候想让他执行的操作。不需要按键等触发就可以执行。

布局方式-菜单栏-面板等控件讲解
-
使用选项卡组可以设计多个界面,实现画布内容的切换

-
面板控件,可以起一个收纳的作用,保证拖动时面板内部的控件相对位置不发生改变

-
菜单栏,相当于1级菜单。

仪表盘控件的使用
- 仪表控件在右侧的 仪表-ScaleColors可以添加每段的颜色。
value为指针的初始值
刻度栏可以更改刻度标签,majorticks写值,majorticklables写每个数值对应的字符串。

-
旋钮控件,滑块控件
有两个回调函数,changing是按住拖动的时候数值就会发生更改,changed是释放鼠标才会更新value。

强制类型转换
string(变量)
属性
私有属性只能在app里调用,公共属性在外部也可以调用。
声明公共属性后,需要用类的方法进行调用
app.t,调用公共属性中的t变量。
表格控件
txt和xls文件都可以作为表格进行读取。
正常情况下读取表格的函数为readtable(path),可以把表格以表单的形式都取出来。
1 | t=readtable("test.xls"); |
详细信息在命令行输入doc readtable
可以讲列表的变量名复制到table控件
1 | app.UITable.ColumnName = t.Properities.VariableNames; |
也可以对表格控件进行修改。
1 | data1 = app.EditField.Value; |
也可以对表格控件进行删除。
1 | app.UITable.Data(:,row_n)=[]; %将那个区域置为[]就是删除了 |
两个APP相互调用
在逻辑里调用
1 | delete(app.UIFigure) %这里来释放内存 |
键盘回调函数
有按压回调和释放回调。

用event.Key监听键盘输入,使用switch来进行按键判断。
回车为
return
然后可以直接在左侧拖动插入回调函数。

这里的windows回调也可以用,但是现在还没有学到,日后补充

单击触发响应回调函数
单击画布的时候,会捕捉鼠标的点击。5m

调用外部m函数
同一个文件夹下,直接调用函数名称就可以。
调用其他路径下的文件,需要使用addpath()算子来添加到工作路径,就可以直接调用文件了。
如果gui里面产生了一个数据,如果想提供给m函数使用,要使用assignin("base","变量名",变量名)将变量添加到工作区当中。

drawnow ui更新函数
如果外部m函数是一个长时间的循环,需要在中间插入drawnow,使程序有时间处理ui的回调,实现交互。

