作为图形用户界面(GUI)的小白,先来了解一下GUI界面的内容:

MATLAB中常用的是利用guide命令搭建GUI界面。

第一步:

命令行窗口输入>>guide

MATLAB appdesigner 改变布局_matlab


第二步:弹出GUIDE快速入门窗口,选择新建GUI(同理,如果要修改已经做好的GUI界面,选择打开现有的),将保存路径前面的勾打上,然后点击浏览,选择想要保存的路径

MATLAB appdesigner 改变布局_matlab_02


第三步:点击确定,会弹出新建好的GUI编辑界面以及GUI相对应的M文件;

MATLAB appdesigner 改变布局_主函数_03


接下来介绍一下GUI编辑界面:

工具栏常用的有两个:按钮与坐标区

MATLAB appdesigner 改变布局_工具栏_04


将左侧工具栏中的"按钮","坐标区"拖到右侧的布局区,并将两者的大小,位置作适当调整

MATLAB appdesigner 改变布局_ide_05


双击布局区的“按钮”或“坐标区”,弹出用于编辑以及更改属性的检查器;以按钮为例,常用属性如图:

MATLAB appdesigner 改变布局_matlab_06


下面将对GUI进行m文件的编辑,以及对“按钮”与“坐标区”之间建立关联。右击按钮,选择查看回调,选择callback:

MATLAB appdesigner 改变布局_matlab_07


9.进入m文件的编辑界面,可以看到“按钮”的callback函数:

MATLAB appdesigner 改变布局_ide_08


这里详细描述一下GUI界面的m文件,

1. 主函数

MATLAB appdesigner 改变布局_matlab_09


主函数,不能修改,否则可能导致初始化失败。

2.open函数

MATLAB appdesigner 改变布局_工具栏_10

刚打开GUI界面时,执行的初始化操作。handles参数是一个结构体类型,可以通过guidata(hObject, handles);进行更新。3.output函数

MATLAB appdesigner 改变布局_gui_11


4.各种callback函数

MATLAB appdesigner 改变布局_gui_12


可以发现,每个函数中都包含handles参数,

handles是一个结构体类型,界面中所有元素的句柄。

MATLAB appdesigner 改变布局_gui_13


数据传递:

如果你在pushbutton1中得到一个变量a,想要传出去,那么在pushbutton1的Callback中,在得到a后添加如下代码:

handles.a=a;
guidata(hObject,handles);

在pushbutton2中要用到a时,在其Callback先添加

a=handles.a;

即可得到a的值。

对于语句

guidata(hObject,handles)

在OpeningFcn函数中这句是本身存在的,若在其他函数中,需添加此语句,代表更新数据。

多菜单栏生成:

点击这里的“菜单编辑器”进入菜单编辑:

MATLAB appdesigner 改变布局_matlab_14


在这里可以新建主菜单和子菜单。

MATLAB appdesigner 改变布局_matlab_15


(完)最后,打包该界面,调用“deploytool”命令。

MATLAB appdesigner 改变布局_主函数_16


MATLAB appdesigner 改变布局_gui_17


添加GUI.m文件,

MATLAB appdesigner 改变布局_gui_18


保存。