matlab自学经典课件7_第1页
matlab自学经典课件7_第2页
matlab自学经典课件7_第3页
matlab自学经典课件7_第4页
matlab自学经典课件7_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020/5/1,taylortool,概率分布disttool,cftool,funtool函数计算器图形用户界面,图形用户界面,Graphicaluserinterfaces,命令窗口不是唯一与Matlab的交互方式。,第七章图形用户界面(GUI)的设计,Graphicaluserinterfaces,窗口、菜单、图标、对话框、光标、按键和文本等各图形对象组成;通过鼠标或键盘选择激活图形对象,使计算机完成某种动作或变化,实现计算和绘图。GUL定制用户与Matlab交互方式;,1.图形用户界面(GUI),7.1GUI概述,2.Matlab图形用户界面设计的两种方法,编写程序:直接编辑M文件产生GUI;editfuntool使用GUIDE设计工具:用可视化GUIDE形成相应文件。,图形用户界面开发环境GUIDE(GraphicalUserInterfaceDevelopmentEnvironment),7.2编程设计GUI,7.2.1图形用户界面对象和句柄7.2.2界面菜单的设计(uimenu)7.2.3用户界面控件的设计(uicontrol),2.常见的图形句柄函数,6.uicontrol:建用户控制图形对象7.uibuttongroup:建按钮组8.uitoolbar;建工具栏9.uipushtool:创建工具栏按钮,uicontrol,uimenu,uicontextmenu,figure,uibuttongroup,uitoolbar,1.figure:创建新图形窗口对象2.set:设置图形对象各属性3.get:获取图形对象各属性4.uimenu:创建用户菜单5.uicontextmenu:创建快捷菜单,7.2.1图形用户界面对象和句柄,1.图形对象,userinterface(ui),2020/5/1,是图形对象唯一标识符,不能重复混淆;通过图形句柄对图形对象进行操作。,3.图形句柄handle,图形句柄:,创建图形对象,为图形对象分配一个标识符。,10.axes:创建坐标轴图形对象11.line:画线。12.patch:填充多边形。13.surface:绘制三维曲面。14.image:显示图片对象,4.程序编写GUI步骤,2020/5/1,第一步骤:,建figure窗口对象,设置其属性;,第二步骤:,建axes或uicontrol、unicontextmenu对象,设置其属性及callback回调函数,2020/5/1,文件File,编辑Edit,视图View,插入Insert,工具Tools,窗口Windows和桌面Desktop帮助Help八个菜单。每个都有下拉菜单(Pull-downmenu);可用uimenu函数默认原窗口菜单后添加新菜单项。,5.创建图形主界面(主窗口),(1)图形窗口的标准菜单:,窗口标题是否以Figuren:为前缀;n窗口序号;属性取值是on(缺省值)或off;,(3)常用属性,图形窗口标题,缺省为空;标题形式:字符串。,控制窗口是否具有菜单条;属性值为none,则窗口没有菜单条;取值是figure(缺省值),为标准菜单。,Name:,NumberTitle:,MenuBar:,hf=figure(属性名1,属性值1,属性名2,属性值2,),(2)建立图形窗口:,窗口句柄hf,例建立图形窗口,起始于屏幕左下角、宽度和高度分别为300像素点和150像素点,背景颜色为绿色,例,hf=figure(Position,1,1,300,150,Color,0,1,0,Name,图形窗口示例,NumberTitle,on,MenuBar,none);,Positiona,b,c,d:在图中位置和大小a:左下角定点的横坐标(或横向位置);b:左下角定点的纵坐标;c:总宽度;d:总高度;,(1)设置图形句柄属性函数set,6.图形对象属性的设置和获取,set(图形句柄,属性名1,属性值1,属性名2,属性值2,),V=get(句柄名,属性名),V是返回的属性值,(2)获取图形句柄信息函数get,2020/5/1,(3)隐藏和显示标准菜单,创建图形窗口恢复标准菜单使用命令:,set(h,menubar,figure)set(gcf,menubar,figure),set(h,MenuBar,none);set(gcf,menubar,none);,隐去标准菜单使用命令:,h=figure(属性名1,属性值1,属性名2,属性值2,),set(gcf,menubar,figure),set(h,MenuBar,none);,1.建立用户菜单uimenu,2020/5/1,7.2.2界面菜单的设计(uimenu),一级菜单项的函数:,子菜单项的函数:,一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,),子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,),figure%创建一个图形窗口h_menu=uimenu(gcf,label,Color);%制作用户顶层菜单项Colorh_submenu1=uimenu(h_menu,label,Blue,.%制作下拉菜单项Bluecallback,set(gcf,Color,blue);%h_submenu2=uimenu(h_menu,label,Red,.%制作下拉菜单Redcallback,set(gcf,Color,red);uimenu(gcf,Label,Test,Callback,gridon,set(gca,box,on),)%可产生带分格的封闭坐标轴的test,自制带下拉菜单表的用户菜单Color和Test。该菜单能使图形窗背景颜色设置为兰色或红色,产生带分格的封闭坐标轴。,2.自制的用户菜单,例,2020/5/1,菜单条有File和Help两项。File下拉菜单中New和Open选项,则将显示NewItem和OpenItem字样。File中Save菜单项初始时禁选状态,在选择Help选项之后将此菜单项恢复成可选状态;如果选择File中的Save选项,则将出现一个新的菜单(三级菜单),其中共有两个子菜单项Textfile和Graphicsfile;如果选择第1项,则将变量k1和k2分别赋为0和1,然后调用file01.m文件来进行相应的处理(该文件需要另行编写);如果选择第2项,则将变量k1和k2分别赋为1和0,然后调用file10.m文件来进行相应的处理(该文件也需要另行编写)。如果选择File中的SaveAs选项,则将显示SaveAsItem字样。如果选择File中的Exit选项,则将关闭当前窗口。如果选择Help中About选项,则将显示HelpItem字样,并将Save菜单设置成可选状态。,建立一个菜单系统,例,clearhf=figure(Color,0,1,1,Name,菜单设计示例一,.NumberTitle,off,MenuBar,none);hfile=uimenu(hf,label,运行程序:,例,2020/5/1,依赖用户菜单uimenu的accelerator属性,其值可取任何字母,4.创建菜单项快捷键acceleratorkey,快捷键提示方式:,被设置快捷键那菜单名后将出现Ctri+Y,快捷键操作方式:,当相应菜单项不可见时,快捷键操作才起作用,Color菜单项及下拉的BlueRed菜单各带快捷键。,hi=figureh_menu=uimenu(hi,Label,Color);%带用户菜单Colorh_submenu1=uimenu(h_menu,Label,Blue,.%带下拉菜单BlueCallback,set(gcf,color,blue),Accelerator,b);h_submenu2=uimenu(h_menu,label,Red,.%制作另一个下拉菜单RedCallback,set(gcf,color,red),.Accelerator,r);%为Red菜单设置快捷键R,例,5.快捷菜单,用uicontextmenu建快捷菜单;用uimenu为快捷菜单建菜单项;用set将该快捷菜单和某图形对象联系起来。,用鼠标右键单击某对象时在屏幕上弹出的菜单;这菜单出现位置不固定,总和某图形对象相联系。,(2)建立具体步骤:,(1)快捷菜单:,绘制y=sin(t)/t曲线,创建与之相联系的现场菜单,用以控制曲线的颜色,t=(-3*pi:pi/50:3*pi);y=sin(t)./t;hline=plot(t,y);%绘制曲线cm=uicontextmenu;%创建现场菜单%制作具体菜单项,定义相应的回调uimenu(cm,label,Red,callback,set(hline,color,r),)uimenu(cm,label,Blue,callback,set(hline,color,b),)uimenu(cm,label,Green,callback,set(hline,color,g),)set(hline,uicontextmenu,cm)%使cm现场菜单与曲线联系,例,在曲线上点击鼠标右键,弹出现场菜单,例,7.2.3用户界面控件的设计(uicontrol),界面控件是信息显示和获取输入数据的用户界面对象有各种各样的控件可实现有关控制,2020/5/1,2.建立控件对象uicontrol函数,对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,),1.界面控件特点,(1)命令按钮(PushButton)(2)开关按钮(ToggleButton)(3)单选按钮(RadioButton)(4)复选框(CheckBox)(5)弹出框(PopupMenu)(6)列表框(ListBox)(7)滚动条(Slider)(8)编辑框(EditBox)(9)静态文本(StaticText)(10)坐标轴(axes),push(按钮,默认值)toggle(开关按钮)radio(单选按钮)check(复选按钮)popup(弹出框)list(列表框)slider(滚动条)edit(编辑框)text(静态文本)axes(坐标轴),3.style属性定义控件对象类型,通过鼠标单击按钮执行预定功能或操作;,+,命令按钮(PushButtons),文本编辑器(EditableTexts),静态文本框(StaticTexts),用于显示单行的说明文字.,使用键盘输入字符串的值;对编辑框中内容编辑、删除和替换等操作;,输入数,输入数,单个单选框用在两种状态之间切换;多个单选框可组成一单选框组;只能在一组状态中选择单一选项。,单个复选框用在两种状态之间切换;多个复选框可组成一个复选框组;在一组状态中作组合式的选择,即多选项。,单选按钮(RadioButton),复选框(CheckBoxes),开关按钮(ToggleButton),产生一个一个二进制状态动作(开或关);当鼠标点击它时按钮将下陷,执行回调函数中指定内容;再次点击,按钮复原,并再次执行callback中的内容。,列表框(ListBoxes),弹出式菜单(PopupMenus),代替多个单选按钮;从一列菜单项中选择一项作为参数输入。,滚动条(Slider),可输入指定范围的数量值;通过移动滚动条改变指定范围内数值输入;滚动条的位置代表输入数值。,列表框显示列表项,选择一项或多项。,disttool,组合框(面板)panel,按钮组buttongroup,坐标轴axes,图形窗口中一个封闭区域,把相关联控件组合一起。,按钮组类似于组合框,但是它可以响应单选按钮以及开关按钮的高级属性。,坐标轴可以设置关于外观和行为的参数。,编程:设计红黄绿背景线图形用户界面绘制二维曲线,2020/5/1,例,坐标轴静态文本框编辑框弹出框命令按键,x=0:pi/20:2*pi;y=sin(x);plot(x,y),x=0:piy=sin(x)plot(x,y),2020/5/1,clf;%清除当前图形窗口的内容set(gcf,Unit,normalized,Position,0.2,0.3,0.55,0.36);%定义图形窗口的位置与大小set(gcf,Menubar,none,Name,图形演示对话框,numberTitle,off);%建立菜单用户名,1.图形窗口的设计,例,Units:设置控件位置及大小单位;当设置为normalized时,以坐标单位,屏幕的左下角为0,0,右上角为1.0,1.0。,axes(position,0.05,0.15,0.55,0.7);%建立坐标轴uicontrol(gcf,style,text,Unit,normalized,Position,0.63,0.85,0.2,0.1,string,请输入绘图命令,Horizontal,center);%建立用户界面控件hedit=uicontrol(gcf,style,edit,Unit,normalized,Position,0.63,0.15,0.2,0.68,Max,2);%建立用户命令编辑框,2020/5/1,编辑框,如Max-Min1,那对应编辑框接收多行字符输入,如Max-Min1,而允许多行输入hpop=uicontrol(gcf,style,popup,.%制作弹出菜单position,0.8,0.73,0.18,0.12,.string,spring|summer|autumn|winter);%设置弹出框中选项名hlist=uicontrol(gcf,Style,list,.%制作列表框position,0.8,0.23,0.18,0.37,.string,Gridon|Boxon|Hiddenoff|Axisoff,.%设置列表框中选项名Max,2);%取2,使Max-Min1,而允许多项选择hpush=uicontrol(gcf,Style,push,.%制作与列表框配用的按键position,0.8,0.05,0.18,0.15,string,Apply);set(hedit,callback,calledit(hedit,hpop,hlist);%编辑框输入引起回调set(hpop,callback,calledit(hedit,hpop,hlist);%弹出框选择引起回调set(hpush,callback,calledit(hedit,hpop,hlist);%按键引起的回调,解,functioncalledit(hedit,hpop,hlist)ct=get(hedit,string);%获得输入的字符串函数vpop=get(hpop,value);%获得选项的位置标识vlist=get(hlist,value);%获得选项位置向量ifisempty(ct)%可编辑框输入非空时eval(ct)%运行从编辑文本框送入的指令popstr=spring,summer,autumn,winter;%弹出框色图矩阵liststr=gridon,boxon,hiddenoff,axisoff;%列表框选项内容invstr=gridoff,boxoff,hiddenon,axison;%列表框的逆指令colormap(eval(popstrvpop)%采用弹出框所选色图vv=zeros(1,4);vv(vlist)=1;fork=1:4ifvv(k);eval(liststrk);elseeval(invstrk);end%按列表选项影响图形endend,编程回调函数,解,2020/5/1,x,y=meshgrid(-4:4,1:6);z=sin(x)+cos(y);mesh(x,y,z);surf(x,y,z),结果,7.3.1图形用户界面开发环境(GUIDE)7.3.2GUIDE提供的控件工具7.3.3可视化的创建图形用户的工具7.3.4创建图形用户界面实例,2020/5/1,7.3.GUIDE创建GUI,可视化创建图形用户窗口工具;通过单击和拖拉很容易创建界面;GUIDE保存GUI界面,将生成FIG文件和M文件;FIG文件(.fig)存放GUI布局及所有控制件信息;,7.3.1图形用户界面开发环境(GUIDE),1.图形用户界面GUI开发环境特点,2020/5/1,M文件(.m)存放GUI初始代码及回调函数模板,为实现回调函数提供参考框架。用户用M文件编辑器根据参考框架向回调事件中添加代码,编制自己应用程序。,使用界面设计编辑器进行界面设计;编写控件行为响应控制代码(即回调函数),2.GUIDE创建GUI步骤,GUI界面设计和控件编程两部分:,3.GUIDE模板,GUIDE提供4模板来定制GUI;这模板均包括相关回调函数;通过修改对应的M文件函数,实现指定功能。,模板特点,空白模板;带有控制按钮模板;带有坐标轴和菜单模板;问答式对话框模板,2020/5/1,启动guide或访问guidefilename打开界面;【File】菜单【New】选项GUI打开界面。点击工具栏中的guide图标,启动和访问,4.空白模板4个功能区组:,GUI设计窗口:菜单栏、工具栏、控件工具栏图形设计区(界面布局编辑器),LayoutEditor,7.3.2GUIDE提供控件工具,面板控件,开关按钮,通过鼠标单击按钮执行预定功能或操作;,+,命令按钮(PushButtons),文本编辑器(EditableTexts),静态文本框(StaticTexts),用于显示单行的说明文字.,使用键盘输入字符串的值;对编辑框中内容编辑、删除和替换等操作;,滚动条(Slider),可输入指定范围的数量值;通过移动滚动条改变指定范围内数值输入;滚动条的位置代表输入数值。,单个单选框用在两种状态之间切换;多个单选框可组成一单选框组;只能在一组状态中选择单一选项。,单个复选框用在两种状态之间切换;多个复选框可组成一个复选框组;在一组状态中作组合式的选择,即多选项。,单选按钮(RadioButton),复选框(CheckBoxes),列表框(ListBoxes),弹出式菜单(PopupMenus),开关按钮(ToggleButton),让用户从一列菜单项中选择一项作为参数输入。,列表框显示列表项,并能够选择其中的一项或多项。,产生一个一个二进制状态动作(开或关);当鼠点击它时按钮将下陷,执行回调函数中指定内容;再次点击,按钮复原,并再次执行callback中的内容。,组合框(面板)panel,按钮组buttongroup,坐标轴axes,是图形窗口中一个封闭区域,把相关联控件组合一起。,按钮组类似于组合框,但是它可以响应单选按钮以及开关按钮的高级属性。,坐标轴可以设置关于外观和行为的参数。,界面布局编辑器(LayoutEditor)几何排列工具(AlignmentTool)菜单编辑器(MenuEditor)对象浏览器(ObjectBrowser)Tab顺序编辑器(TabOrderEditor)属性查看器(PropertyInspector),7.3.3可视化的创建图形用户工具,即界面设计编辑器,用于从控件选择板上选择控件对象并放置到布局区去;布局区被激活后就成为图形窗口。,1.布局编辑器(Layouteditor),执行动作,将控件对象放置到布局区,用鼠标选择并放置控件到布局区内;移动控件到适当的位置;改变控件的大小;选中多个对象的方法。,File/SaveAs按输入文件名字存储;将存储一对同名M文件和FIG文件。,保存图形界面,图形界面,运行GUI程序,运行run,图形界面,run,静态图形窗口,布局编辑器参数设置,File/Preferences/GUIDE,设置布局编辑器参数,布局编辑器的弹出菜单,任一控件按下鼠标右键,弹出菜单完成布局编辑器大部分操作。,2.位置调整工具(Alignmenttool),GUI设计区的多个对象的位置进行调整。,(2)打开方式:,GUI窗口工具栏上选择AlignObjects按钮;Tools菜单的AlignObjects.菜单项。,(1)功能:,2020/5/1,调整选中多个对象间对齐方式和距离,Alignmenttool,第一栏垂直方向位置调整;,第二栏是平方向的置调整;,可创建、设置、修改下拉式菜单和快捷菜单;选择Tools的MenuEditor.打开菜单编辑器。,3.菜单编辑器(MenuEditor),八个快捷键,任意添加或删除菜单,菜单属性,名称,标签,键盘快捷键,显示分隔线,菜单前加上选中标记,项目是否可用,调用回调函数,上角的第一按钮创建一级菜单项;第二按钮创建一级菜单的子菜单。,选第一按钮创建下拉式菜单;选第二按钮创建ContextMenu菜单;左角第三按钮变可用,单击它创建ContextMenu主菜单;再单击第二钮创建选中ContextMenu主菜单子菜单;选中创建某个ContextMenu,右边显示该菜单属性,设置、修改菜单属性。,创建菜单步骤,快捷菜单;弹出式菜单,第四与第五个按钮对选中的菜单进行左移与右移;第六与第七个按钮对选中的菜单进行上移与下移;最右边的按钮用于删除选中的菜单。,4.对象浏览器(ObjectBrowsers),可查看当前设计阶段各句柄图形对象,选其中控件打开它的属性编辑器。,打开方式:,工具栏选ObjectBrowser;View菜单ObjectBrowser;设计区域单击鼠标右键,选择弹出菜单ObjectBrowser。,5.Tab顺序编辑器(TabOrderEditor),设置用户按键盘上Tab键时,对象被选中的先后顺序。,打开方式:,选择Tools菜单下TabOrderEditor.菜单项;GUI的工具栏上选择TabOrderEditor.。,6.用属性查看器设置控件属性,(1)打开方式,从GUI工具栏选PropertyInspector;View菜单下PropertyInspector;命令窗口中输入inspect;控件对象上单击鼠标右键,选弹出菜单PropertyInspector。,(2)属性查看器(PropertyInspector),可查看每个对象的属性值;也可修改、设置对象的属性值。,2020/5/1,String:控件对象标题或内容,取值字符串矩阵或块数组,Tag:控件标示符,回调函数名称由Tag_callbackStyle:控件对象类型,取值pushbutton(缺省),radiobutton,checkbox,edit,text,slider,frame,popupmenu或listbox;Units:设置控件位置及大小单位,缩放时保持该区比例;取值pixels(像素,缺省值)normalized(相对单位)inches(英寸),centimeters(厘米)或points(磅);Value:控制件当前值,取值矢量或数值,含义依赖于其类型。,(3)控件对象的基本控制属性,Resizeon:决定图形窗口缩放;Enable:此控件使能状态(有效),on可选,off不可选(灰色);Visible:控件是否可见;BackgroundColor:背景颜色,取值RGB值;缺省浅灰色;ForegroundColor:标题字符颜色;取值为颜色的预定义字符或RGB数值,缺省黑色;Extent:标题字符位置尺寸;取值四元素0,0,width,height。Max,Min:控制件大小,取值为数值,缺省分别1和0。,2020/5/1,FontAngle:取值normal(正体,缺省)italic(斜体)oblique(方头)FontName:取值为控件标题等字体的字库名;FontSize:取值为数值;FontUnits:字号单位,缩放时保持字体比例,取值points(缺省)normalized,inches,centimeters或pixels;FontWeight:字符粗细;取值normal(缺省)light,demi和bold;HorizontalAligment:控件对象标题等的对齐方式,取值left,center(缺省值)right。,控件对象的修饰控制属性,2020/5/1,控件回调函数,每个控件都有几种回调函数,是连接程序界面整个程序系统的实质性功能的纽带;CallBack为一般回调函数,因不同控件而已异;如按钮被按下时发生,下拉框改变值时发生,sliderbar拖动时发生等等。,fcn是function缩写,对象产生过程中执行回调函数;控件对象创建时发生(一般为初始化样式,颜色,初始值等),CallBack属性:,CreateFcn,2020/5/1,指定当前回调函数执行时是否允许中断,去执行其他函数,删除对象过程中执行的回调函数。,按钮按下时的处理函数。,处理回调函数的中断;两种选项:即Cancel:取消中断事件;queue:排队(默认设置)。,DeleteFcn:,ButtonDownFcn,BusyAction,Interruptible,绘制X=sin(2*pi*f1*t)+sin(2*pi*f2*t)和其快速傅里叶(FFT)图像,2020/5/1,7.3.4创建图形用户界面,例,3编辑框1命令按键2坐标轴5静态文本框,时域和频域图,2020/5/1,创建图形用户界面,例,选择控件,3编辑框1命令按键2坐标轴5静态文本框,2020/5/1,例,设置控件属性,静态文本框,编辑框,编辑框,2020/5/1,例,坐标轴,命令按键,设置控件属性,2020/5/1,例,控件属性设置完成,7.4编写界面控件的回调函数,2020/5/1,回调函数名:控件Tag_Call类型名,回调函数输入参数:hObject,eventdata,handles,GUIDE自动M文件相应的函数体:,文件同名主函数+各控件相应的回调子函数,hObject:当前figure的句柄;Eventdata:为了兼容将来版本的保留接口,直接忽略;Handles:结构体,包含图形中所有对象句柄,handles.f1,handles.f2,handles.t,handles.t_axes,f2_Callback,Run,静态图形窗口,保存为ft,2020/5/1,functionvarargout=guii(varargin)%GUIIM-fileforguii.fig%GUI初始化函数:opening,outputfunctionguii_OpeningFcn(hObject,eventdata,handles,varargin)functionvarargout=guii_OutputFcn(hObject,eventdata,handles)%GUI回调函数:functionf1_Callback(hObject,eventdata,handles)functionf1_CreateFcn(hObject,eventdata,handles)functionf2_Callback(hObject,eventdata,handles)functionf2_CreateFcn(hObject,eventdata,handles

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论