资源描述:
《matlab的图形用户界面设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八讲MATLAB图形用户界面设计所谓图形用户界面是指由窗口、菜单、对话框等各种图形对象组成的用户界面。在这种用户界面下,用户的操作是通过“选择”各种图形对象来实现的。一、图形窗口的控制一、图形窗口的控制1.建立图形窗口要建立一个图形窗口,有两种方法:(1)菜单操作:在MATLAB命令窗口选择File菜单中的New命令,再选取Figure子菜单,这样将建立一个标准的MATLAB图形窗口;(2)命令操作:使用figure函数建立一个图形窗口,并返回该窗口的句柄。调用figure函数的一般格式为:窗口句柄=figure(属性名1,属性值1,属性名2,属性值2,…)MATLAB通过对属性
2、的操作来改变图形窗口的形式。2.图形窗口的常用属性(1)MenuBar属性MenuBar属性的取值可以是figure(缺省值)或none。用来控制图形窗口是否应该具有菜单条。如果它的属性值为none,则表示该图形窗口没有菜单条。这时用户可以根据后面将介绍的uimenu()函数来加入自己的菜单条,如果属性值为figure,则该窗口将保持图形窗口默认的菜单条,这时也可以采用uimenu()函数在原默认的图形窗口菜单后面添加新的菜单项。一、图形窗口的控制(2)Name属性Name属性的取值可以是任何字符串,它的缺省值为空。这个字符串作为图形窗口的标题。一般情况下,其标题形式为:Figur
3、eNo.1:字符串。2.图形窗口的常用属性一、图形窗口的控制(3)NumberTitle属性NumberTitle属性的取值是on(缺省值)或off。决定着在图形窗口的标题中是否以“FigureNo.n:”为标题前缀,这里n是图形窗口的序号,即句柄值。【例1】建立一个图形窗口。该图形窗口起始于屏幕左下角、宽度和高度分别为300像素点和150像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将显示“Hello,KeyboardKeyPressed.”字样。一、图形窗口的控制程序为:hf=figure('Color',[0,1,0],'Position',[1,1,300,150
4、],...'Name','图形窗口示例','NumberTitle','off','MenuBar','none',...'KeyPressFcn','disp(''Hello,KeyboardKeyPressed.'')');3.图形窗口控制函数(1)设置图形窗口属性函数setset函数的调用格式为:set(窗口句柄,属性名1,属性值1,属性名2,属性值2,…)(2)获取句柄信息函数get调用格式为:V=get(句柄名,属性名)其中V是返回的属性值。一、图形窗口的控制二、菜单设计MATLAB的各个图形窗口有自己的菜单栏,包括File、Edit、Windows和Help等菜单项。为
5、了建立用户自己的菜单系统,可以先将图形窗口的MenuBar属性事先设置为none,以取消图形窗口缺省的菜单,然后再建立用户自己的菜单。二、菜单设计1.建立用户菜单要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立菜单条中的菜单项和子菜单中的菜单项。建立菜单条的函数调用形式为:菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)建立子菜单的函数调用形式为:子菜单句柄=uimenu(父菜单句柄,属性名1,属性值1,属性名2,属性值2,…)二、菜单设计2.菜单对象常用属性(1)Tag属性Tag属性的取值是字符串,它定义了该菜单对象的一
6、个标识值。定义了Tag属性后,在任何程序中都可以通过这个标识值找出该菜单对象。(2)Type属性Type属的取值总是uimenu,这个属性值标明图形对象的类型。对菜单对象,其类型就是uimenu,用户不能改写这个属性。(3)UserData属性UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在这个属性中保存与该菜单对象相关的重要数据或信息,借此可以达到传递数据或信息的目的。可以用set和get函数访问该属性。二、菜单设计菜单条中含有File和Help两个菜单项。如果选择File中的New选项,则将显示NewItem字样,如果选择File中的Open选项,则将显示出Op
7、enItem字样。File中的Save菜单项初始时处于禁选状态,在选择Help选项之后将此菜单项恢复成可选状态,如果选择File中的Save选项,则将出现一个新的菜单(三级菜单),其中共有两个子菜单项Textfile和Graphicsfile,如果选择第1项,则将变量k1和k2分别赋为0和1,然后调用file01.m文件来进行相应的处理(该文件需要另行编写),如果选择第2项,则将变量k1和k2分别赋为1和0,然后调用file10.m文件来进行相应的处理(该文件也需要另