一.图形用户界面(GUI)
1.介绍:
又称图形用户接口,英文名为Graphical User Interface,简称GUI
是指采用图形方式显示的计算机操作用户界面
2.设计GUI
(1)进入设计视图:
>> guide
#结果见下图,进入引导界面
选择Blank GUI(Default),创建1个空白GUI
然后在空白GUI上进行GUI设计
(2)GUI控件(GUI Components):
进入GUI设计界面的 File栏-Preferences选项-GUIDE栏
勾选 Show names in component palette选择
选择OK/Apply后在左侧的元件栏中会同时显示控件名
Push Button:按钮
Slider:滚动条
Radio Button:单选按钮
Check Box:复选框
Edit Text:输入框
Static Text:静态文本框
Pop-up Menu:弹出式菜单
Listbox:选择栏
Toggle Button:开关按钮(双态按钮)
Table:表单
Axes:坐标区(在其中进行绘图)
Panel:面板容器
Button Group:按钮组
ActiveX Control:ActiveX控件
(3)相关操作:
#排列控件:
1.手动排列
2.自动排列:选择 Tools栏-Align Objects选项
显示当前控件的属性:View栏-Property Inspector
可在该栏中修改属性
点击▷按钮
1.要求运行时如果没有保存会询问是否保存
2.可以手动保存:File栏-Save选项/Save As选项
1个GUI包括2个文件:.fig和.m
#.fig文件存储界面设计信息;.m文件存储程式码,即要运行的程序代码
#参数说明:
name:GUI的名字
二.相关函数
将脚本放在.m文件中
function _OpeningFcn(,,,)
%该函数无返回值,在打开文件时触发执行,主要用于进行初始化
%name:绑定的.m文件的名字
%hObject:Figure的句柄
%eventdata:保留,在未来版本中将被定义
%handles:包括各对象句柄和用户数据的结构体
%varargin:用于接收参数的可变长的cell array
%实例:
function untitled1_OpeningFcn(,,,)
handles.peaks = peaks(35);
handles.membrane = membrane;
[x,y] = meshgrid(-8 : .5 : 8);
r = sqrt(x .^ 2 + y .^ 2) + eps;
sinc = sin(r) ./ r;
handles.sinc = sinc;
handles.current_data = handles.peaks;
surf(handles.current_data)
handles.output=hObject;
guidata(hObject,handles)
end
2.回调函数(Callback):
function _Callback(,,)
%:在控件被点击时触发执行
%comp:绑定的控件的名字
%hObject:comp的句柄
%eventdata:保留,在未来版本中将被定义
%handles:包括各对象句柄和用户数据的结构体
#实例:
function pushbutton1_Callback(,,)
handles.peaks = peaks(35);
handles.membrane = membrane;
[x,y] = meshgrid(-8 : .5 : 8);
r = sqrt(x .^ 2 + y .^ 2) + eps;
sinc = sin(r) ./ r;
handles.sinc = sinc;
handles.current_data = handles.peaks;
surf(handles.current_data)#如果有多个Axes,默认画在最后1个Axes上
end
function varargout = _OutputFcn(,,)
%最后执行的函数,主要用于生成输出值
%name:绑定的.m文件的名字
%varargout:用于接收返回值的可变长的cell array
%hObject:figure的句柄
%eventdata:保留,在未来版本中将被定义
%handles:包括各对象句柄和用户数据的结构体
4.创建函数(CreateFcn):
5.利用handles参数存储变量:
function中的变量是局部变量,如果要在别的函数中调用,就需要利用handles进行传递
#实例:
function untitled1_OpeningFcn(,,,)
a = 1
handles.MyData = a
end
function pushbutton1_Callback(,,)
a = handles.MyData
end
三.外部部署
deploytool []:打开编译向导
#参数说明:
proj_name:指定项目;如果不指定该参数,需要在编译向导中选择
#官方文档:opens the appropriate compiler app with the project preloaded
deploytool -