图形界面编程.pptx
(2)创建输入对话框inputdlga)answer=inputdlg(prompt)b)answer=inputdlg(prompt,title)c)answer=inputdlg(prompt,title,lineNo)d)answer=inputdlg(prompt,title,lineNo,defAns)e)answer=inputdlg(prompt,title,lineNo,defAns,Resize)对应描述:prompt是一个包含提示字符串的数组。a)创建一个模式对话框并返回用户在数组中输入的内容b)title为对话框指定一个标题c)lineNo为用户的每个输入值指定输入的行数,可以是标量、列向量或矩阵。列向量为一个提示符指定输入的行数;矩阵是m*2矩阵,其中m是对话框中提示符的个数,矩阵的第一列为指定输入的行数;第二列指定字符的域宽。d)defAns指定每个提示符的默认值e)Resize说明对话框是否改变尺寸,取值on和off。第1页/共82页 例ans=inputdlg(请输入题号(1-10),输入0退出,Matlab zuoye)例pp=a=?,b=?ans=inputdlg(pp,Input Param)第2页/共82页例inputdlg(AAAAAAA)inputdlg(AAAAAAA,inputdialog)inputdlg(AAAAAAA,inputdialog,2)inputdlg(AAAAAAA,inputdialog,1,OOOOOOOO)inputdlg(AAAAAAA,inputdialog,1,OOOOOOOO,on)Cellarray例创建输入一个整数和色图名称的对话框,每行只允许输入一行。prompt=EnterMatrixsize,Entercolomapname;title=Inputdataforpeaksfunction;lines=1;def=20,hsv;answer=inputdlg(prompt,title,lines,def)第3页/共82页(3)创建消息对话框msgboxa)msgbox(message)b)msgbox(message,title)c)msgbox(message,title,icon)d)msgbox(message,title,custom,iconData,iconCmap)e)msgbox(.,createMode)f)h=msgbox(.)对应描述:a)产生一个消息对话框b)title为消息对话框指定标题c)Icon指定在消息对话框中显示哪一个图标.icon可以是none、error、help、warn、customd)定义一个用户定制的图标。iconData包含着定义图标的图形数据;iconCmap是图形所用的色图e)指定消息框是否为模式化的,如果是非模式化的,是否要取代其它有同样标题的消息框。createMode取modal、non-modal和replacef)返回一个对话框的句柄h,它是一个图形对象的句柄。第4页/共82页Note:消息对话中的消息自动换行来适应具有适当尺寸的图框。Message是一个字符串向量、字符串矩阵或数组。例mess=Inputdlghelp,Listdlghelp;Msgboxhelp,.Pagedlghelpmsgbox(mess,MyDialogHelp,help)mess=Inputdlg help Listdlg help Msgbox help Pagedlg help第5页/共82页(4)创建错误对话框errordlga)errorelgb)errorelg(eerrorstring)c)errorelg(eerrorstring,dlgname)d)errorelg(eerrorstring,dlgname,on)e)h=errordlg(.)相应描述:a)显示一个包含字符串”Thisisthedefaulterrorstring”的名为”ErrorDialog”的对话框b)显示一个包含字符串”errorstring”的名为”ErrorDialog”的对话框;c)显示一个包含字符串”errorstring”的名”dlgname”的对话框d)指定是否取代一个已经存在的有相同名字的对话框。on表示把一个有相同名字的出错对话框提在前台;e)返回一个错误对话框句柄。第6页/共82页Note:MATLAB自动改变对话框的大小来适应字符串errorstring的长度.例errordlgerrordlg(File not found)errordlg(File not found,File Error)errordlg(File not found,File Error,on)第7页/共82页(5)创建问题对话框questdlgnbutton=questdlg(qstring)打开问题提示对话框,有三个按钮,分别为:yes,no和cancel,questdlg确定提示信息。nbutton=questdlg(qstring,title)title确定对话框标题。nbutton=questdlg(qstringtitle,default)当按回车键时,返回default值,default必须是yes,no或cancel之一。nbutton=questdlg(qstring,title,str1,str2,default)打开问题提示对话框,有两个按钮,分别由str1和str2确定,qstdlg确定提示信息,default必须是str1或str2之一。nbutton=questdlg(qstring,title,str1,str2,str3,default)打开问题提示对话框,有三个按钮,分别由str1,str2和str3确定,qstdlg确定提示信息,default必须是str1,str2或str3之一。第8页/共82页例 生成一个问询对话框,询问用户是否继续一个假定的操作。button=questdlg(Doyouwanttocontinue?,ContinueOperation,Yes,No,Help,No)ifstrcmp(button,Yes)disp(Creatingfile)elseifstrcmp(button,No)disp(Canceledfileoperation)elseifstrcmp(button,Help)disp(Sorry,nohelp)end第9页/共82页(6)创建警告对话框warndlgh=warndlg(warningstring,dlgname)打开警告信息对话框,显示warningstring信息,dlgname确定对话框标题,h为返回对话句柄。例warndlg(PressingOKwillclearMemory,.Warning!)第10页/共82页(7)显示帮助对话框helpdlghelpdlghelpdlg(helpstring)helpdlg(helpstring,dlgname)h=helpdlg(.)Note:MATLAB将helpstring中的内容自动换行来适应一个对话框的长度。例helpdlghelpdlg(you can select 10 points from figure)helpdlg(you can select 10 points from figure,.points selection)第11页/共82页(8)创建选择列表内容的对话框listdlgSelection,ok=listdlg(ListString,S,.)其中,nSelection是已经选择的字符串的索引向量;在只有一个选项的模式下,它的长度为1;当点击OK按钮时,ok=1;当点击Cancel按钮时,ok=0;当ok=0时,Selection=;对话框还有一个Selectall按钮。n输入参数和其值的形式列表如下:第12页/共82页参数参数描述描述 ListString指定列表选框的字符串数组指定列表选框的字符串数组 SelectionMode 值为值为sigle或或multiple ListSize用像素来衡量尺寸,用像素来衡量尺寸,w h,160 30 InitialValue最初被选择的列表框选项的索引向量,默认值最初被选择的列表框选项的索引向量,默认值为为1,即第一项,即第一项 Name对话框标题名称对话框标题名称 PromptString在列表框上部的正文中出现的字符串的数组或在列表框上部的正文中出现的字符串的数组或矩阵。默认值为矩阵。默认值为 OKStringOK按钮上的字符串,默认为按钮上的字符串,默认为OK CancelStringCancel按钮上的字符串,默认为按钮上的字符串,默认为Cancel uh用户界面控制按钮的高度,用用户界面控制按钮的高度,用pixel表示表示,18 fus框架和用户截面控制按钮的间隔,框架和用户截面控制按钮的间隔,pixel,18 ffs框架数字的间隔框架数字的间隔,pixel,8第13页/共82页例创建用户从当前目录中选一个文件的对话框。函数将返回一个向量,该向量的第一个元素是被选文件的索引,第二个元素在没有做选择时为0,做了选择后为1。d=dir;str=d.names,v=listdlg(PromptString,Selectafile:,.SelectionMode,single,ListString,str)第14页/共82页例 创建一个自己的列表对话框str=AAAAAA,BBBBBBB,CCCCCCC,DDDDDDD;s,v=listdlg(ListString,str,SelectionMode,multiple,.ListSize,200,100,Name,MyListDialog,.PromptString,Pleaseselectfollowoptions,ffs,18)MATLAB第15页/共82页(9)创建显示页面的版面对话框pagedlga)pagesetupdlgb)pagesetupdlg(fig)对应描述a)对当前图形显示一个页面的版面对话框,使用户可以进行页面设置b)对由fig指定的图形显示一个页面设置对话框例figurex=0:pi/100:2*pi;y=sin(x);plot(x,y)pagesetupdlg第16页/共82页第17页/共82页(10)创建显示打印对话框printdlga)printdlgb)printdlg(fig)c)printdlg(-crossplatform,fig)对应描述a)打印当前的图形b)生成一个对话框,由此用户可以打印句柄fig指定的图形窗口。但该命令不能打印用户菜单c)对微软的Windows操作系统显示一种标准的交叉平台式的MATLAB打印对话框。第18页/共82页例t=0:pi/100:2*pi;y=sin(x);plot(x,y)printdlg第19页/共82页(11)进程条nh=waitbar(x,title)显示以title为标题的进程条,x为进程条的比例长度,其值必须在0到1之间,h为返回的进程条对象的句柄。nwaitbar(x,title,creatcancelbtn,button_callback)在进程条上使用creatcancelbtn参数创建一个撤销按钮,在进程中按下撤销按钮将调用button_callback函数。nwaitbar(.,property_name,property_value,.)选择其它由prompt_name定义的参数,参数值由prompt_value指定。第20页/共82页例clch=waitbar(0,pleasewait.);pause;%暂停,击任一键继续fori=1:1000waitbar(i/1000,h,MyProcess.)endclose(h)第21页/共82页(12)打开文件对话框uigetfilenuigetfile显示一个用于检索一个文件的对话框,列出了当前目前中的文件和目录。nuigetfile(FilterSpec)FilterSpec确定最先显示的文章,它可以用通配符*。nuigetfile(FilterSpec,DialogTitle)nuigetfile(FilterSpec,DialogTitle,x,y)把对话框定位在x,y,这里x和y是距左边界和上边界的距离,以像素为单位。nfname,pname=uigetfile(.)返回在对话框中选择的文件的名称和路径。fname保存被选中的文件的名称,pname保存路径。第22页/共82页例列出选定目录中的所有.m文件fname,pname=uigetfile(C:DocumentsandSettingsyfzxMyDocumentsMATLAB*.m,SampleDialogBox)fname=example5_24.mpname=C:DocumentsandSettingsyfzxMyDocumentsMATLAB第23页/共82页(13)保存文件对话框uiputfilenuiputfile显示一个中写入文件名的对话框,列出了当前目前中的文件和目录。nuiputfile(InitFile)显示的对话框包含当前路径中由InitFile确定的文件的列表。InitFile可以是一个文件的全名,也可以包含通配符*。nuiputfile(InitFile,DialogTitle)nuiputfile(InitFile,DialogTitle,x,y)把对话框定位在x,y,这里x和y是距左边界和上边界的距离,以像素为单位。nfname,pname=uiputfile(.)返回在对话框中选择的文件的名称和路径。fname保存被选中的文件的名称,pname保存路径。第24页/共82页例显示一个标题为SaveFilename,文件名为aaa.m的对话框。fname,pname=uiputfile(aaa.m,SaveFilename)fname=aaa.mpname=C:Documents and Settingsyfzx桌面第25页/共82页(14)弹出式菜单函数menu K=MENU(HEADER,ITEM1,ITEM2,.)例:K=menu(请选择,plot,mesh,surf)第26页/共82页二、图形界面设计是指由窗口、菜单、对话框等各种图形元素组成的用户界面。u在MATLAB中,基本的图形界面对象包含3类:用户界面控件对象(uicontrol)下拉式菜单对象(uimenu)快捷菜单对象(uicontextmenu)第27页/共82页1 建立用户菜单要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。建立一级菜单项的函数调用格式为:一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,.)建立子菜单项的函数调用格式为:子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,.)第28页/共82页两种调用格式的区别建立一级菜单项时,要给出图形窗口句柄。否则,在当前窗口中建立菜单项。如果没有活动窗口,则会自动打开一个图形窗口;建立子菜单项时,必须指定一级菜单项对应的句柄值。菜单项的句柄子菜单项Save的句柄子菜单项SaveAs的句柄例:hm=uimenu(gcf,Label,File);hm1=uimenu(hm,Label,Save)hm2=uimenu(hm,Label,SaveAs)第29页/共82页例 建立用户菜单项h=figure(Name,图形界面窗口,NumberTitle,off,MenuBar,none)hm=uimenu(h,Label,文件);hm1=uimenu(hm,Label,保存)hm2=uimenu(hm,Label,另存为)hm3=uimenu(hm,Label,退出)第30页/共82页菜单对象常用属性菜单对象具有Children,Parent,Tag,UserData,Visible等公共属性,除公共属性外,还有一些常用的特殊属性,见下表所示:%hm3=uimenu(hm,Label,退出,callback,close)hm3=uimenu(hm,Label,&Quit,Accelerator,Q,callback,close,Separator,on)快捷键设置第31页/共82页属性名属性名属性值及作用属性值及作用Label取值取值字符串字符串,用于定义菜单项的名字用于定义菜单项的名字.可以在字符可以在字符串中加串中加(&)-对应于下划线对应于下划线,可用可用Alt激活激活Accelerator 取值任何字母取值任何字母,用于定义菜单的快捷键用于定义菜单的快捷键Callback取值字符串取值字符串,可以是某个可以是某个M文件的文件名或一组文件的文件名或一组Matlab命令命令.该菜单被选中后该菜单被选中后,自动调用此回调函数自动调用此回调函数.Checked取值取值on或或off,为菜单项定义一个标记为菜单项定义一个标记,指明菜单指明菜单项是否被选中项是否被选中Enable取值取值on或或off,控制菜单项的可选择性控制菜单项的可选择性.不可用时不可用时,该菜单呈现灰色该菜单呈现灰色.Position定义一级菜单在菜单栏上的相对位置或子菜单项定义一级菜单在菜单栏上的相对位置或子菜单项在菜单组内的相对位置在菜单组内的相对位置.默认为默认为1-最左端最左端Separator取值为取值为on或或off.可以用分隔线将将各菜单项分开可以用分隔线将将各菜单项分开.第32页/共82页例建立图形演示系统菜单,菜单条中含有3个菜单项:Plot、Option和Quit。Plot中有SineWave和CosineWave两个子菜单项,分别控制在本图形窗口画出正弦和余弦曲线。Option菜单项的内容.,其中Gridon和Gridoff控制给坐标轴加网格线,Boxon和Boxoff控制给坐标轴加边框,而且这4项只有在画有曲线时才是可选的。WindowColor控制图形窗口背景颜色。Quit控制是否退出系统。第33页/共82页分析其步骤:Step1:按要求建立图形窗口;Step2:按要求建立第一个菜单项;Step3:按要求建立其子菜单项;Step4:按要求实现对应菜单项和子菜单项功能;Step5:对第二个菜单项,重复step2-step4;Step6:结束第34页/共82页screen=get(0,ScreenSize);w=screen(3);h=screen(4);h=figure(Position,0.3*h,0.3*h,0.5*w,0.5*h,Name,图形演示系统,NumberTitle,off,MenuBar,none);hplot=uimenu(h,Label,&Plot);hplot1=uimenu(hplot,Label,SineWave,callback,mysin);hplot2=uimenu(hplot,Label,CosinWave,callback,mycos);第35页/共82页hOption=uimenu(h,Label,&Option);hGridon=uimenu(hOption,Label,&Gridon,Callback,Gridon,Enable,on);hGridoff=uimenu(hOption,Label,G&ridoff,Callback,Gridoff,Enable,on);hBoxon=uimenu(hOption,Label,&Boxon,Callback,boxon,Enable,on,separator,on);hBoxoff=uimenu(hOption,Label,B&oxoff,Callback,boxoff,Enable,on);第36页/共82页hWincolor=uimenu(hOption,Label,&WindowColor,separator,on);hRed=uimenu(hWincolor,Label,&Red,Accelerator,r,call,set(h,color,r););hBule=uimenu(hWincolor,Label,&Blue,Accelerator,b,call,set(h,color,b););hYellow=uimenu(hWincolor,Label,&Yellow,call,set(h,color,y););hBule=uimenu(hWincolor,Label,&White,call,set(h,color,w););hquit=uimenu(h,Label,&Quit,call,close(h);第37页/共82页%mysint=-pi:pi/10:pi;plot(t,sin(t)gridon%mycost=-pi:pi/10:pi;plot(t,cos(t)gridon第38页/共82页2 快捷菜单快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系。在MATLAB中,可以使用Uicontextmenu函数和图形对象的UicontextMenu属性来建立快捷菜单,具体步骤为:(1)利用uicontextmenu函数建立快捷菜单。(2)利用uimenu函数为快捷菜单建立菜单项。(3)利用set函数将该快捷菜单和某图形对象联系起来。第39页/共82页例 绘制曲线y=2sin(5x)sinx,并建立一个与之相联系的快捷菜单,用以控制曲线的线型、曲线宽度和颜色。第40页/共82页x=0:pi/100:2*pi;y=2*sin(5*x).*sin(x);h=plot(x,y);hc=uicontextmenu;hls=uimenu(hc,Label,线型);hlw=uimenu(hc,Label,线宽);hlc=uimenu(hc,Label,线色);uimenu(hls,Label,虚线,call,set(h,LineStyle,:););uimenu(hls,Label,实线,call,set(h,LineStyle,-););uimenu(hlw,Label,加宽,call,set(h,LineWidth,2););uimenu(hlw,Label,变细,call,set(h,LineWidth,0.5););uimenu(hlc,Label,红色,call,set(h,Color,r););uimenu(hlc,Label,绿色,call,set(h,Color,g););uimenu(hlc,Label,黄色,call,set(h,Color,y););set(h,UicontextMenu,hc);建立快捷菜单建立菜单项建立子菜单项并实现功能将快捷菜单和曲线关联第41页/共82页3 对话框设计对话框是人机交互信息的临时窗口,有广泛的用途。目的是使得用户操作更加方便灵活。第42页/共82页对话框的控件设计对话框时,有很多控件,能实现各种各样的功能。常用的控件有控件名控件名 Property Name 功能功能按钮按钮 PushButton最常用的控件,用于响应用户的鼠标单最常用的控件,用于响应用户的鼠标单击,按钮上有说明文字说明其作用。击,按钮上有说明文字说明其作用。切换按钮切换按钮 ToggleButton 当单击时会凹凸状态切换。当单击时会凹凸状态切换。单选按钮单选按钮 RadioButton当单击时会用黑白点切换,总是成组出当单击时会用黑白点切换,总是成组出现,多个单选按钮互斥,一组中只有现,多个单选按钮互斥,一组中只有一个被选中。一个被选中。复选框复选框CheckBox当单击时会用当单击时会用切换,有选中、不选中切换,有选中、不选中和不确定等状态,总是成组出现,多和不确定等状态,总是成组出现,多个复选框可同时选用。个复选框可同时选用。第43页/共82页控件名控件名PropertyName功能功能文本框文本框EditText凹形方框,可随意输入和编辑单行和多行凹形方框,可随意输入和编辑单行和多行文字,并显示出来。文字,并显示出来。静态文本框静态文本框StaticText用于显示文字信息,但不接受输入。用于显示文字信息,但不接受输入。滚动条滚动条Slider可以用图示的方式显示在一个范围内数值可以用图示的方式显示在一个范围内数值的大概值范围,用户可以移动滚动条改的大概值范围,用户可以移动滚动条改变数值。变数值。边框边框Frame将一组控件围在框架中,用于装饰界面。将一组控件围在框架中,用于装饰界面。列表框列表框ListBox显示下拉文字列表,用户可以从列表中选显示下拉文字列表,用户可以从列表中选择一项和多项。择一项和多项。弹出框弹出框PopupMenu相当于文本框和列表框的组合,用户可以相当于文本框和列表框的组合,用户可以从下拉列表中选择。从下拉列表中选择。第44页/共82页对话框的设计在MATLAB中,要设计一个对话框,首先要建立一个图形窗口,然后在图形窗口中放置所涉及到的用户控件对象。(1)建立控件对象命令uicontrolh_control=uicontrol(h_Parent,PropertyName,ProperValue,.)(2)控件对象的属性对话框控件对象除了Children、Parent、Visible、UserData等公共属性外,还有一些常用的特殊属性。第45页/共82页属性名属性名属性值属性值Positionx,y,w,h,它们的单位,它们的单位Units属性决定属性决定Unitspixel、normalized、inches、centiments、pointsCallback取值为字符串,实现该控件的实质性功能取值为字符串,实现该控件的实质性功能String取值为字符串,定义控件对象的说明文字取值为字符串,定义控件对象的说明文字Style取值可以是取值可以是push、toggle、radio、check、list、popup、edit、text、slider等。定义控件对象等。定义控件对象的类型。的类型。Enable该控件的使能状态该控件的使能状态on或或offTooltipstring 鼠标指针位于该控件时的提示信息显示鼠标指针位于该控件时的提示信息显示FontName取值是控件对象标题等使用字体的字库名取值是控件对象标题等使用字体的字库名第46页/共82页FontSize字号大小字号大小FontAngle 取值为取值为normalized、italic、obliqueFontUnitsPoints、normalized、inches、centiments、Pixel、FontWeight normalized、light、demi、boldHorizontal-AlignmentLeft、center、right.决定控件对象上说明文字决定控件对象上说明文字在水平方向上对齐方式在水平方向上对齐方式Max和和Min取值为数值取值为数值,默认值为默认值为1、0Value属性的取值属性的取值,可以是向量也可以是数值。可以是向量也可以是数值。说明:对于不同的控件对象(radio,check,slider,list popup),其Max、Min以及Value值的含义有所不同。第47页/共82页例:h_main=figure(name,a demo of gui design,menubar,none,.numbertitle,off,position,100 100 300 100);h_edit=uicontrol(style,edit,backgroundcolor,1 1 1,position,20 20 50 20,.tag,myedit,string,1,horizontalalignment,left);h_but1=uicontrol(style,pushbutton,position,20 50 50 20,string,INC,.callback,v=eval(get(h_edit,string);,.set(h_edit,string,int2str(v+1););h_but2=uicontrol(style,pushbutton,position,80 50 50 20,string,DEC,.callback,v=eval(get(h_edit,string);,set(h_edit,string,int2str(v-1););第48页/共82页例2function gui_demo()%GUI_demo is another demo of GUI design.h_main=figure(units,normalized,position,0.3 0.3 0.5 0.4,.name,GUI demostration,numbertitle,off);h_axis=axes(units,normalized,position,0.3 0.15 0.6 0.7,.tag,axplot,xlim,0 10,ylim,-1 1);t=0:0.1:10;y=sin(t);line(t,y);bmp1=imread(1.bmp);bmp2=imread(2.bmp);bmp3=imread(3.bmp);bmp4=imread(4.bmp);h_1=uicontrol(style,pushbutton,units,normalized,.position,0.1 0.6 0.06 0.1,cdata,bmp1,.callback,zoom on,tooltipstring,Enable zooming);h_2=uicontrol(style,pushbutton,units,normalized,.position,0.04 0.45 0.06 0.1,cdata,bmp2,.callback,zoom xon,tooltipstring,Enable zoom on x-axis only);h_3=uicontrol(style,pushbutton,units,normalized,.position,0.16 0.45 0.06 0.1,cdata,bmp3,.callback,zoom yon,tooltipstring,Enable zoom on y-axis only);h_4=uicontrol(style,pushbutton,units,normalized,.position,0.1 0.3 0.06 0.1,cdata,bmp4,.callback,zoom off,tooltipstring,Disable zooming);第49页/共82页第50页/共82页对话框设计例题例建立按钮对象,单击时绘制正弦函数,同时建立双位按钮,控制是否给坐标加网格线。代码:uicontrol(gcf,Style,push,Position,40,5,100,25,.String,Plot,call,x=0:pi/100:2*pi;plot(x,sin(x)uicontrol(gcf,Style,toggle,Position,170,5,100,25,String,Grid,call,grid)第51页/共82页例建立单选按钮,用来设置图形窗口的颜色,只能选择一种颜色。代码:htxt=uicontrol(gcf,Style,text,Position,200,130,150,20,String,ColorOptions)hr=uicontrol(gcf,Style,radio,Position,200,100,150,25,String,red,Value,1,call,set(hr,Value,1);,set(hb,Value,0);,set(hy,Value,0);,set(gcf,Color,r);hb=uicontrol(gcf,Style,radio,Position,200,75,150,25,String,blue,Value,1,call,set(hb,Value,1);,set(hr,Value,0);,set(hy,Value,0);,set(gcf,Color,b);hy=uicontrol(gcf,Style,radio,Position,200,50,150,25,String,yellow,Value,1,call,set(hb,Value,0);,set(hr,Value,0);,set(hy,Value,1);,set(gcf,Color,y);he=uicontrol(gcf,Style,push,String,Quit,call,close);第52页/共82页例建立复选框按钮,用来设置图形窗口的颜色、标题、大小等。第53页/共82页htxt=uicontrol(gcf,style,text,Units,.normalized,Position,.1.5.25.1,String,.SetWindowsProperties);hp=uicontrol(gcf,Style,check,Units,normalized,.Position,.1.4.25.1,String,MyPosition,.call,set(gcf,Position,300,300,300,250);,.ifget(hp,Value)=1,.set(gcf,Position,300,200,600,500),end);hc=uicontrol(gcf,Style,check,Units,normalized,.Position,.1.3.25.1,String,MyColor,.call,set(gcf,Color,g);,.ifget(hc,Value)=1,set(gcf,Color,r),end);第54页/共82页hn=uicontrol(gcf,Style,check,Units,normalized,Position,.1.2.25.1,String,MyName,.call,set(gcf,Name,复选框未被选中);,.ifget(hn,Value)=1,.set(gcf,Name,复选框被选中),end);第55页/共82页例建立下拉列表,列表中包含一组图形形状.当选择某种形状时,要求在图形窗口中画出.ScreenColor=get(gcf,Color);htext=uicontrol(gcf,Style,text,.String,Pleaseselectoneofshapes,.Position,80,360,200,20,.Fontsize,12,ForegroundColor,b,.BackgroundColor,.ScreenColor(1),ScreenColor(2),ScreenColor(3);hlist=uicontrol(gcf,Style,list,.String,line|triangle|square|rectangle|diamond,.call,Mydraw(hlist),Position,.100,200,100,150,Fontsize,12,BackgroundColor,w);第56页/共82页第57页/共82页例建立两个滚动条,分别用于设置图形窗口的宽度和高度,并利用静态文本说明对象,标出滚动条的数据范围以及当前值第58页/共82页screen=get(0,ScreenSize);w=screen(3);h=screen(4);hfigure=figure(Position,0.35*h,0.3*h,0.4*w,0.25*h,Name,滑动条演示窗口,NumberTitle,off,MenuBar,none);图形窗口hslider1=uicontrol(hfigure,Style,Slider,Position,50,50,120,20,Min,200,Max,800,Value,400,callback,s