MATLAB用户界面设计说明PPT课件_第1页
MATLAB用户界面设计说明PPT课件_第2页
MATLAB用户界面设计说明PPT课件_第3页
MATLAB用户界面设计说明PPT课件_第4页
MATLAB用户界面设计说明PPT课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB图形界面中各对象关系根对象root图形窗口对象figure右键菜单对象uicontextmenu菜单对象uimenu控件对象uicontrol坐标轴对象axes线对象line文字对象text表面图对象surface图像对象image光源对象light第1页/共48页 两种界面创建方式: 交互式工具创建 命令创建界面第2页/共48页1、窗口对象及其属性设定 1.1 窗口对象的建立 hwin=figure(属性1,属性值1,属性2,属性值2,) hwin为图形窗口的句柄,matlab环境允许打开多个窗口,每个窗口都对应自己的句柄,通过该句柄可以进一步对窗口的属性等进行操作。 hwin=

2、gcf 获得当前窗口的句柄。第3页/共48页1.2 图形窗口的属性第4页/共48页 常用属性 color属性 由红绿蓝三原色组成,取值范围为0到1。 menubar属性 设置菜单条的形式。 MenuBarMenuBar属性的取值可以是figure(figure(缺省值) )或nonenone。 用来控制图形窗口是否应该具有菜单条。如果它的属性值为nonenone,则表示该图形窗口没有菜单条。这时用户可以根据后面将介绍的uimenu()uimenu()函数来加入自己的菜单条,如果属性值为figurefigure,则该窗口将保持图形窗口默认的菜单条,这时也可以采用uimenu()uimenu()函

3、数在原默认的图形窗口菜单后面添加新的菜单项。 name属性 设置图形窗口的标题栏中标题内容,其属性值为一字符串。 numbertitle属性 是否显示图形窗口标题栏中的图形标号。Name属性的取值可以是任何字符串,它的缺省值为空。这个字符串作为图形窗口的标题。一般情况下,其标题形式为:“Figure 1:字符串。 units属性 设定图形单位。如:pixels(象素点)、inches(英寸)、centimeters(厘米)、normalized(归一值)等第5页/共48页 position属性 设定窗口的位置和大小,为14向量,前两个值为窗口左下角横纵坐标值,后两个元素值为窗口的宽度和高度,其

4、单位由units属性设定。 resize属性 确定是否可以改变图形窗口的大小。 toolbar属性 是否显示工具条。 visible属性 决定窗口是否为可见。 Pointer属性 设置鼠标的显示形式。 第6页/共48页回调函数(callback function) 一旦某一对象指定的事件发生,将自动调用某指定的函数,它可以是matlab文件,也可以是一组matlab程序。 CloseRequestFcn关闭窗口时响应函数 KeyPressFcn键盘按下时响应函数 windowButtonDownFcn-鼠标按下时响应函数 WindowButtonMotionFcn-鼠标移动时响应函数 Crea

5、teFcn和DeleteFcn-建立和删除对象时响应函数 CallBack-对象被选中时响应函数 第7页/共48页实例:gwin=figure(visible,off);pauseset(gwin,color,1,0,0,position,100,200,300,300,.name,My program,numbertitle,off,menubar,none);set(gwin,visible,on)set(gwin,windowbuttondownfcn,helpdlg(mouse button down!)set(gwin,keypressfcn,helpdlg(keyboard pre

6、ssed!)第8页/共48页例1 建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为450像素点和260像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将在该图形窗口绘制出正弦曲线,点击鼠标时绘制余弦曲线。hf=figure(Color,0,1,0,Position,1,1,450,260,. Name,我的图形窗口,NumberTitle,on,MenuBar,none,. KeyPressFcn,plot(sin(0:0.01:2*pi),WindowButtonDownFcn,plot(cos(0:0.1:2*pi),r*);

7、第9页/共48页1.3 标准对话框及其调用 1. 文件名操作函数 uigetfile() 函数打开一个文件进行读、写的对话框。 fname,pname=uigetfile(ffilter,strtitle,x,y) ffilter为文件名过滤器;strtiltle为对话框窗口标题栏的显示内容;x、y为对话框出现的位置,省略则采用默认位置。返回文件名字和路径第10页/共48页f,p=uigetfile(*.m;*.txt,请选择一个文件)f =fileprint.mp =E:MATLABR11work第11页/共48页 2. 颜色设置对话框 c=uisetcolor; 或 c=uisetcolo

8、r(c0); 函数返回一个13的颜色向量,分别对应红、绿、蓝三原色,按下“取消”按钮后返回空的向量;如果给出向量c0,则在图中指向c0所定义的颜色位置,且按下“取消”按钮时返回c0的值。第12页/共48页 3.字体设置对话框 h_Font=uisetfont 或 h_Font=uisetfont(h_Text,strTitle) h_Font为字体属性的结构体;h_Text为要设置的字符句柄,strTitle为对话框的标题栏内容。s=uisetfonts = FontName: 楷体_GB2312 FontUnits: points FontSize: 42 FontWeight: bold

9、FontAngle: normal第13页/共48页 4. 警告与错误信息对话框warndlg和 errordlg函数,格式: warndlg(警告信息,对话框名字) errordlg(错误信息,对话框名字) 二者的显示图标不同。 例:h=warndlg(error:,code1111.,Warning)h=errordlg(error:,code 1111.,Error) 第14页/共48页 5. 帮助信息对话框 与警告、错误信息对话框基本一致,仅仅是图标的不同。 例: h=helpdlg(帮助信息:,帮助信息对话框和警告错误对话框基本一致,只是图标不同!,帮助)第15页/共48页 6.通用

10、信息框 msgbox(显示信息,标题,图标) 图标包括:Error、Help、Warn以及Custom,如果缺省则为None。data=1:64;data=(data*data)/64;msgbox(This is an example of msgbox!,custom ico,custom,data,hot(64)第16页/共48页1.4 Matlab图形界面基本控件 1. 常用控件静态文本static text 一般用来作为信息提示用。编辑框edit text 读取用户数据的文字窗口。面板 panel 概括一组控件,也可以修饰用。列表框listbox 包含多个选项供用户选择。第17页/共

11、48页滚动条slider 图示某个范围。按钮pushbutton 其上的字符说明其作用。切换按钮toggle button 两状态按钮,单击改变其状态。收音机按钮radiobutton 一组选项,其中只能有一个被选中。复选框check button 一组选项,可以选择多项。弹出式菜单popupmenu 选中时打开一个列表。第18页/共48页2.2 控件对象的属性 控件对象的属性分为两大类: 第一类是所有控件对象都具有的公共属性 第二类是把控件对象作为图形对象所具有的专有特性第19页/共48页(1) 公共属性 对象常用的公共属性: Children属性: 取值为空阵,控件对象没有子对象 Pare

12、nt属性:某个图形窗口的句柄值 Tag属性:取值为字符串,定义了该控件的一个标识值,所有 程序通过标识值来找出控件对象 Type属性 :取值总是uicontrol,表明图形对象的类型 UserData属性: 一个矩阵,可以在此属性保存与该控件对象相 关的重要数据或信息,借此传递数据或信息 Visible属性: 可视化与否 第20页/共48页2.控件的常用属性Units与 position属性 意义同上,这里的位置是相对该窗口的左下角;String属性 标注在控件上,用来说明或提示;Callback属性 实现该控件的实质性功能;Enable属性 该控件的使能状态on或off tag 属性 同上

13、第21页/共48页 例1: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,. call

14、back,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););第22页/共48页设计为函数文件:function gui_counter1()%gui_counter is a demo of gui design.h_main=figure(name,

15、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,h=findobj(gcf,tag,myedit);

16、,v=eval(get(h,string);,. set(h,string,int2str(v+1););h_but2=uicontrol(style,pushbutton,position,80 50 50 20,string,DEC,. callback,h=findobj(gcf,tag,myedit);,v=eval(get(h,string);,. set(h,string,int2str(v-1););第23页/共48页 例2function gui_demo()%GUI_demo is another demo of GUI design.h_main=figure(units,

17、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,pushbutt

18、on,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,norm

19、alized,. 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);第24页/共48页第25页/共48页 1.5. 坐标轴对象建立坐标轴对象使用axes函数,调用它的命令形

20、式为:句柄变量=axes(属性名1,属性值1,属性名2,属性值2,)MATLAB为每个坐标轴对象提供了很多属性。除公共属性外,还有其他常用属性。第26页/共48页 例 利用坐标轴对象实现图形窗口的任意分割。 程序如下(my_figure.m): clf; %清图形窗口 x=linspace(0,2*pi,20); y=sin(x); figure axes(Posi,0.2,0.2,0.2,0.7); plot(y,x); title(sin(x)-1); axes(Posi,0.4,0.5,0.2,0.09); stairs(x,y); title(sin(x)-2); axes(Posi,

21、0.55,0.6,0.25,0.3); stem(x,y);title(sin(x)-3); axes(Posi,0.55,0.2,0.25,0.2); stem(x,y); title(sin(x)-4); 第27页/共48页 1.6. 曲线对象 建立曲线对象使用line函数,调用它的命令形式为: 句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,) 其中对x,y,z的解释与高层曲线函数plot和plot3等一样,其余的解释与前面介绍过的figure和axes函数类似。每个曲线对象也具有很多属性。除公共属性外,还有其他常用属性。第28页/共48页 1.7. 文字对象 使

22、用text函数可以根据指定位置和属性值添加文字说明,并保存句柄。调用该函数的命令形式为: 句柄变量=text(x,y,z,说明文字,属性名1,属性值1,属性名2,属性值2,) 其中说明文字中除使用标准的ASCII字符外,还可使用LATEX格式的控制字符。 除公共属性外,文字对象还有其他常用属性。第29页/共48页 1.8. 曲面对象 建立曲面对象使用surface函数,调用它的命令形式为: 句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性值2,) 其中对x,y,z的解释与高层曲面函数mesh和surf等一样,其余的解释与前面介绍过的figure和axes等函数类似。 每

23、个曲面对象也具有很多属性。除公共属性外,还有其他常用属性。第30页/共48页 例 x,y=meshgrid(-2:.4:2); z=x.*exp(-x.2-y.2); fh=figure(Position,350 275 400 300,Color,w); ah=axes(color,.8 .8 .8,XTick,-2 -1 0 1 2,YTick,-2 -1 0 1 2); sh=surface(Xdata,x,Ydata,y,Zdata,z,. Facecolor,get(ah,Color)+.1,Edgecolor,k,Marker,o,. MarkerFaceColor,.5 1 .8

24、5);第31页/共48页surf(x,y,z)第32页/共48页 例 利用曲面对象绘制三维曲面z=sin(y)cos(x)。程序如下: x=0:0.1:2*pi; x,y=meshgrid(x); z=sin(y).*cos(x); axes(view,-37.5,30); hs=surface(x,y,z,FaceColor,w,EdgeColor,flat); grid on; xlabel(x-axis) ylabel(y-axis) zlabel(z-axis); title(mesh-surf); pause set(hs,FaceColor,flat); 0246802468-1-

25、0.500.51x-axismesh-surfy-axisz-axis0246802468-1-0.500.51mesh-surfz-axis0246802468-1-0.500.51mesh-surfz-axis第33页/共48页2.菜单设计第34页/共48页 MATLAB MATLAB的各个图形窗口有自己的菜单栏,包括FileFile、EditEdit、WindowsWindows和HelpHelp等菜单项。为了建立用户自己的菜单系统,可以先将图形窗口的MenuBarMenuBar属性事先设置为nonenone, 以取消图形窗口缺省的菜单,然后再建立用户自己的菜单。2、菜单设计第35页/共

26、48页1.1.建立用户菜建立用户菜单单 要建立用户菜单可用uimenuuimenu函数,因其调用方法不同,该函数可以用于建立菜单条中的菜单项和子菜单中的菜单项。建立菜单条的函数调用形式为: 菜单项句柄=uimenu(=uimenu(图形窗口句柄,属性名1 1,属性值1 1,属性名2 2,属性值2 2,) ) 建立子菜单的函数调用形式为: 子菜单句柄=uimenu(=uimenu(父菜单句柄,属性名1 1,属性值1 1,属性名2 2,属性值2 2,) )2、菜单设计第36页/共48页2.2.菜单对象常用属性菜单对象常用属性 (1 1) TagTag属性 TagTag属性的取值是字符串,它定义了该

27、菜单对象的一个标识值。定义了TagTag属性后,在任何程序中都可以通过这个标识值找出该菜单对象。 (2 2) TypeType属性 TypeType属的取值总是uimenuuimenu,这个属性值标明图形对象的类型。对菜单对象,其类型就是uimenuuimenu,用户不能改写这个属性。 (3 3) UserDataUserData属性 UserDataUserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在这个属性中保存与该菜单对象相关的重要数据或信息,借此可以达到传递数据或信息的目的。可以用setset和getget函数访问该属性。二、菜单设计第37页/共48页 菜单条中含有File

28、和Help两个菜单项。如果选择File中的New选项,则将显示New Item字样,如果选择File中的Open选项,则将显示出Open Item字样。File中的Save菜单项初始时处于禁选状态,在选择Help选项之后将此菜单项恢复成可选状态,如果选择File中的Save As选项,则将显示Save As Item字样。如果选择File中的Exit选项,则将关闭当前窗口。如果选择Help中About 选项,则将显示Help Item字样,并将Save 菜单设置成可选状态。【例2】 建立一个菜单系统。二、菜单设计第38页/共48页 程序如下: screen=get(0,ScreenSize); W=screen(3);H=screen(4); hf=figure(Color,1,1,1,Position,1,1,0.4*W,0.3*H,. Name,菜单设计示例一,NumberTitle,off,MenuBar,none); hfile

温馨提示

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

评论

0/150

提交评论