
Matlab基础及其应用-第10章-App设计.pptx
57页MATLAB基础与应用教程第10章APP设计【本章学习目标】掌握图形用户界面设计的方法熟悉控件的常用属性掌握GUIDE的使用掌握GUI回调函数的定义方法掌握App设计工具的使用MATLAB基础与应用教程10.1 图形用户界面1控件(Controls)(1)按钮一个按钮代表一种操作,也称为命令按钮2)滑动条用户可以通过移动滑块来改变滑动条对象的值3)单选按钮当被选中时,圆圈的中心有一个实心的黑点,否则圆圈为空白在一组单选按钮中,只能有一个被选中4)复选框被选中的项其小方框中有复选框一次可以选择多项5)可编辑文本供用户输入数据用编辑框内输入的是字符,参与算术运算前需要转换为对应的数6)静态文本一般用作其他控件的标签、提示10.1.1 用户界面对象概述MATLAB基础与应用教程10.1 图形用户界面2菜单(Menus)通过使用菜单,可以把对程序的各种操作命令非常规范有效地呈现给用户,单击菜单项程序将执行相应的功能菜单对象是图形窗口的子对象快捷菜单(ContextMenu)是用鼠标右键单击某对象时在屏幕上弹出的菜单也称为上下文菜单10.1.1 用户界面对象概述MATLAB基础与应用教程10.1 图形用户界面3工具栏(Toolbars)工具栏以图标方式提供了常用命令的快速访问按钮。
10.1.1 用户界面对象概述MATLAB基础与应用教程10.1 图形用户界面1外观控制属性(1)Style属性用于定义控件对象的类型2)Tag属性用于定义控件标识3)String属性用于定义控件对象的说明文字4)Enable属性用于控制控件对象是否可用,取值是on(默认值)或off5)HorizontalAlignment属性用于设置说明文字的水平对齐方式,可取值为center(默认值)、left或right6)BackgroundColor用于定义控件对象区域的背景色,默认值为.94.94.94(浅灰色);ForegroundColor属性用于定义控件对象说明文字的颜色,默认为黑色10.1.2 控件的公共属性MATLAB基础与应用教程10.1 图形用户界面1外观控制属性(7)Position属性用于定义控件对象在用户界面中的位置和大小,属性值是一个4元向量 n1,n2,n3,n4n1和n2分别为控件对象左下角相对于父对象的x、y坐标,n3和n4分别为控件对象的宽度和高度8)Max、Min属性用于指定控件对象的最大值和最小值,默认值分别是1和09)Value属性用于获取和设置控件对象的当前值。
10)UserData属性用于存储与控件对象关联的数据,默认为空数组10.1.2 控件的公共属性MATLAB基础与应用教程10.1 图形用户界面2事件响应属性(1)Callback属性属性值是描述命令的字符串或函数句柄,当单击控件时,系统将自动执行字符串描述的命令或调用句柄所代表的函数,实施相关操作2)ButtonDownFcn属性:用于定义在控件对象上单击鼠标左键时执行的命令3)KeyPressFcn属性用于定义在控件对象上按下键盘键时执行的命令4)KeyReleaseFcn属性用于指定在控件对象上按下键盘键后释放时执行的命令5)CreateFcn属性:用于指定在建立控件对象时执行的命令6)DeleteFcn属性:用于指定删除控件对象时执行的命令10.1.2 控件的公共属性MATLAB基础与应用教程10.1 图形用户界面1事件驱动机制面向对象的程序设计是以对象感知事件的过程为编程单位,当事件发生时,相应的程序段才会运行事件是由用户或操作系统引发的动作gcbo命令用于获取正在执行回调的对象句柄10.1.3 回调函数MATLAB基础与应用教程10.1 图形用户界面2回调函数回调函数定义对象怎样处理信息并响应某事件,该函数不会主动运行,是由主控程序调用的。
回调函数的基本结构:function 回调函数名(source,eventdata)end参数source是发生事件的源对象句柄,eventdata存储事件数据10.1.3 回调函数MATLAB基础与应用教程10.1 图形用户界面【例10.1】绘制0,2的正弦曲线,当在曲线上单击鼠标左键时,将曲线线条颜色改为红色首先定义回调函数setlinecolorfunction setlinecolor(source,)source.Color=r;end将上述函数保存为函数文件setlinecolor.m然后在命令窗口执行以下命令x=linspace(0,2*pi,50);h=plot(x,sin(x);h.ButtonDownFcn=setlinecolor;MATLAB基础与应用教程10.2 GUI函数函数uicontrol用于建立控件对象的,调用格式为h=uicontrol(parent,属性1,属性值1,属性2,属性值2,)参数parent用于指定控件对象的容器(即父对象),属性及其取值决定了控件对象的特征例如,在图形窗口上放置一个滑动条:10.2.1 建立控件对象fh=figure(position,100,200,320,160);sh=uicontrol(fh,Style,slider,.Max,100,Min,0,Value,25,.SliderStep,0.05 0.2,.Position,60 100 150 30);MATLAB基础与应用教程10.2 GUI函数uibuttongroup函数、uipanel函数、uitoolbar函数,分别用于建立按钮组、面板、工具栏,调用格式为h=uibuttongroup(parent,属性1,属性值1,属性2,属性值2,)h=uipanel(parent,属性1,属性值1,属性2,属性值2,)h=uitoolbar(parent,属性1,属性值1,属性2,属性值2,)10.2.1 建立控件对象 fh=figure;bg=uibuttongroup(fh,Position,0.1,0.1,0.5,0.1);r1=uicontrol(bg,Style,radiobutton,.String,选项A,.Position,10 10 100 30);r2=uicontrol(bg,Style,radiobutton,.String,选项B,.Position,110 10 100 30,.Value,1);MATLAB基础与应用教程10.2 GUI函数1创建菜单MATLAB提供了uimenu函数来创建、设置、修改菜单。
函数调用格式为m=uimenu(parent,属性1,属性值1,属性2,属性值2,)建立菜单时,parent为图形窗口的句柄,默认在当前图形窗口中建立这个菜单10.2.2 建立用户菜单 hm=uimenu(gcf,Label,文件);hm1=uimenu(hm,Label,打开);hm2=uimenu(hm,Label,新建);hm3=uimenu(hm,Label,保存);hm21=uimenu(hm2,Label,图形窗口);hm22=uimenu(hm2,Label,坐标轴);MATLAB图形窗口带有默认菜单,若不需要图形窗口的默认菜单为了建立用户自己的菜单系统,可以先将图形窗口的MenuBar属性设置为noneMATLAB基础与应用教程10.2 GUI函数2菜单属性菜单对象除具有Children、Parent、Tag等公共属性外,还有一些特殊属性Label属性:用于定义菜单项上显示的文字Accelerator属性:用于定义菜单项的快捷键Checked属性:指示菜单项是否已选中Enable属性:控制菜单项的可选择性Separator属性:在菜单项上方添加一条分隔线10.2.2 建立用户菜单MATLAB基础与应用教程10.2 GUI函数(1)uicontextmenu函数用于建立快捷菜单,函数调用格式为m=uicontextmenu(parent,属性1,属性值1,属性2,属性值2,)(2)利用uimenu函数为快捷菜单建立下一级菜单项。
3)通过图形对象的UIContextMenu属性将快捷菜单与图形对象关联10.2.3 建立快捷菜单MATLAB基础与应用教程10.2 GUI函数建立脚本文件menudemo.m,程序如下:syms t;x=sin(t)+sin(2*t);y=cos(t)-cos(2*t);hf=figure(Name,快捷菜单演示);hl=fplot(x,y,Tag,myline);hc=uicontextmenu;%建立快捷菜单%建立一级菜单项hcs=uimenu(hc,Text,线型);hcc=uimenu(hc,Text,线条颜色);%建立二级菜单项uimenu(hcs,Text,虚线,Tag,:,CallBack,LineStatus)uimenu(hcs,Text,实线,Tag,-,CallBack,LineStatus);uimenu(hcc,Text,红,Tag,r,CallBack,LineStatus);uimenu(hcc,Text,黑,Tag,k,CallBack,LineStatus);%将该快捷菜单和曲线对象关联hl.UIContextMenu=hc;MATLAB基础与应用教程10.2 GUI函数建立函数文件LineStatus.m,定义回调函数。
function LineStatus(source,)h=findobj(Tag,myline);if source.Parent.Text=线条颜色 h.Color=source.Tag;elseif source.Parent.Text=线型 h.LineStyle=source.Tag;endMATLAB基础与应用教程10.3 GUIDE1 1打开打开GUIDEGUIDE打开GUIDE有两种方法:(1)在MATLAB桌面,选择“主页”选项卡,单击工具栏的“新建”命令按钮,从弹出的命令列表中选“App”下的命令项“GUIDE”2)在MATLAB命令行窗口输入guide命令10.3.1 GUIDE简介MATLAB基础与应用教程10.3 GUIDE2 2界面编辑器窗口界面编辑器窗口10.3.1 GUIDE简介工具栏菜单栏组件选项板界面设计区状态栏MATLAB基础与应用教程10.3 GUIDE3 3回调属性回调属性用于定义对象怎样处理信息并响应事件在GUIDE中,按钮类控件和菜单项的单击事件的默认回调属性是Callback;其他图形对象的回调属性还有ButtonDownFcn、KeyPressFcn、SelectionChangeFcn等。
在GUIDE中,控件的回调属性值默认为“%automatic”,即自动使用默认的回调方法GUIDE自动生成的回调函数头格式为:function pushbutton1_Callback(hObject,eventdata,handles)hObject存储事件触发的源控件eventdata存储事件数据handles存储用户界面中所有对象的句柄10.3.1 GUIDE简介MATLAB基础与应用教程10.3 GUIDE例如,用户界面中有一个按钮对象pushbutton1和1个静态文本对象text1,若运行时单击按钮pushbutton1,使text1上显示“Hello,World”,则在回调函数pushbutton1_Callback的函数体中加入以下语句:handles.text1.String=Hello,World;例如,在回调函数pushbutton1_Callback的函数体中加入以下语句:handles.mydata=This is an example.;guidata(hObject,handles);在pushbutton2_Callback的函数体中加入以下语句,在对象text1上显示上述字符串:handles.tex。
