matlab基础与编程入门课件 第九讲 用户界面设计.ppt_第1页
matlab基础与编程入门课件 第九讲 用户界面设计.ppt_第2页
matlab基础与编程入门课件 第九讲 用户界面设计.ppt_第3页
matlab基础与编程入门课件 第九讲 用户界面设计.ppt_第4页
matlab基础与编程入门课件 第九讲 用户界面设计.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

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

2、以进一步对窗口的属性等进行操作。 hwin=gcf 获得当前窗口的句柄。,1.2 图形窗口的属性,常用属性 color属性 由红绿蓝三原色组成,取值范围为0到1。 menubar属性 设置菜单条的形式。 MenuBar属性的取值可以是figure(缺省值)或none。用来控制图形窗口是否应该具有菜单条。如果它的属性值为none,则表示该图形窗口没有菜单条。这时用户可以根据后面将介绍的uimenu()函数来加入自己的菜单条,如果属性值为figure,则该窗口将保持图形窗口默认的菜单条,这时也可以采用uimenu()函数在原默认的图形窗口菜单后面添加新的菜单项。 name属性 设置图形窗口的标题栏

3、中标题内容,其属性值为一字符串。 numbertitle属性 是否显示图形窗口标题栏中的图形标号。Name属性的取值可以是任何字符串,它的缺省值为空。这个字符串作为图形窗口的标题。一般情况下,其标题形式为:“Figure 1:字符串。 units属性 设定图形单位。如:pixels(象素点)、inches(英寸)、centimeters(厘米)、normalized(归一值)等,position属性 设定窗口的位置和大小,为14向量,前两个值为窗口左下角横纵坐标值,后两个元素值为窗口的宽度和高度,其单位由units属性设定。 resize属性 确定是否可以改变图形窗口的大小。 toolbar属

4、性 是否显示工具条。 visible属性 决定窗口是否为可见。 Pointer属性 设置鼠标的显示形式。,回调函数(callback function),CloseRequestFcn关闭窗口时响应函数 KeyPressFcn键盘按下时响应函数 windowButtonDownFcn-鼠标按下时响应函数 WindowButtonMotionFcn-鼠标移动时响应函数 CreateFcn和DeleteFcn-建立和删除对象时响应函数 CallBack-对象被选中时响应函数,gwin=figure(visible,off); pause set(gwin,color,1,0,0,position,

5、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 pressed!),一旦该对象指定的事件发生,将自动调用某指定的函数,它可以是matlab文件,也可以是一组matlab程序。,例1 建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为4

6、50像素点和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*);,例2:修改图形位置 space = 5; top_space = 80; scn_size = get(0,ScreenSize); p

7、os1 = space, 2/3*scn_size(4) + space,. scn_size(3)/2 - 2*space, scn_size(4)/3 - (top_space + space); pos2 = pos1(1) + scn_size(3)/2, pos1(2),. pos1(3), pos1(4); h1 = figure(1); peaks; h2 = figure(2); membrane; set(h1, Position, pos1) %利用set命令修改图形窗口位置 set(h2, Position, pos2),1.3 标准对话框及其调用,1. 文件名操作函数

8、uigetfile() 函数打开一个文件进行读、写的对话框。 fname,pname=uigetfile(ffilter,strtitle,x,y) ffilter为文件名过滤器;strtiltle为对话框窗口标题栏的显示内容;x、y为对话框出现的位置,省略则采用默认位置。,f,p=uigetfile(*.m;*.txt,请选择一个文件) f = fileprint.m p = E:MATLABR11work,2. 颜色设置对话框 c=uisetcolor; 或 c=uisetcolor(c0); 函数返回一个13的颜色向量,分别对应红、绿、蓝三原色,按下“取消”按钮后返回空的向量;如果给出向

9、量c0,则在图中指向c0所定义的颜色位置,且按下“取消”按钮时返回c0的值。,3.字体设置对话框 h_Font=uisetfont 或 h_Font=uisetfont(h_Text,strTitle) h_Font为字体属性的结构体;h_Text为要设置的字符句柄,strTitle为对话框的标题栏内容。,s=uisetfont s = FontName: 楷体_GB2312 FontUnits: points FontSize: 42 FontWeight: bold FontAngle: normal,4. 警告与错误信息对话框warndlg和 errordlg函数,格式: warndlg

10、(警告信息,对话框名字) errordlg(错误信息,对话框名字) 二者的显示图标不同。 例: h=warndlg(error:,code1111.,Warning) h=errordlg(error:,code 1111.,Error),5. 帮助信息对话框 与警告、错误信息对话框基本一致,仅仅是图标的不同。 例: h=helpdlg(帮助信息:,帮助信息对话框和警告错误对话框基本一致,只是图标不同!,帮助),6.通用信息框 msgbox(显示信息,标题,图标) 图标包括:Error、Help、Warn以及Custom,如果缺省则为None。 data=1:64;data=(data*dat

11、a)/64; msgbox(This is an example of msgbox!,custom ico,custom,data,hot(64),1.4 Matlab图形界面基本控件,1. 常用控件 静态文本static text 一般用来作为信息提示用。 编辑框edit text 读取用户数据的文字窗口。 面板 panel 概括一组控件,也可以修饰用。 列表框listbox 包含多个选项供用户选择。,滚动条slider 图示某个范围。 按钮pushbutton 其上的字符说明其作用。 切换按钮toggle button 两状态按钮,单击改变其状态。 收音机按钮radiobutton 一组

12、选项,其中只能有一个被选中。 复选框check button 一组选项,可以选择多项。 弹出式菜单popupmenu 选中时打开一个列表。,2.2 控件对象的属性,控件对象的属性分为两大类: 第一类是所有控件对象都具有的公共属性 第二类是把控件对象作为图形对象所具有的专有特性,(1) 公共属性,对象常用的公共属性: Children属性: 取值为空阵,控件对象没有子对象 Parent属性:某个图形窗口的句柄值 Tag属性:取值为字符串,定义了该控件的一个标识值,所有 程序通过标识值来找出控件对象 Type属性 :取值总是uicontrol,表明图形对象的类型 UserData属性: 一个矩阵,

13、可以在此属性保存与该控件对象相 关的重要数据或信息,借此传递数据或信息 Visible属性: 可视化与否,2.控件的常用属性,Units与 position属性 意义同上,这里的位置是相对该窗口的左下角; String属性 标注在控件上,用来说明或提示; Callback属性 实现该控件的实质性功能; Enable属性 该控件的使能状态on或off tag 属性 同上,例1:,h_main=figure(name,a demo of gui design,menubar,none, numbertitle,off,position,100 100 300 100); h_edit=uicont

14、rol(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 2

15、0,string,DEC,. callback,v=eval(get(h_edit,string);,set(h_edit,string,int2str(v-1););,设计为函数文件: function gui_counter1() %gui_counter is a demo of gui design. 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

16、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);,v=eval(get(h,string);,. set(h,string,int2str(v+1);); h_but2=uicontrol(style,pushbutton,position,80 50 50 20,string,DEC,. c

17、allback,h=findobj(gcf,tag,myedit);,v=eval(get(h,string);,. set(h,string,int2str(v-1););,例2,function 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

18、 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(

19、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=uicont

20、rol(style,pushbutton,units,normalized,. position,0.1 0.3 0.06 0.1,cdata,bmp4,. callback,zoom off,tooltipstring,Disable zooming);,1.5. 坐标轴对象 建立坐标轴对象使用axes函数,调用它的命令形式为: 句柄变量=axes(属性名1,属性值1,属性名2,属性值2,) MATLAB为每个坐标轴对象提供了很多属性。除公共属性外,还有其他常用属性。,例 利用坐标轴对象实现图形窗口的任意分割。 程序如下: clf; %清图形窗口 x=linspace(0,2*pi,20);

21、 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,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);,1.6. 曲线对象 建立曲线对象使用line函数,调用它的命令形式为: 句柄变量=line(x,y,z,

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

23、,调用它的命令形式为: 句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性值2,) 其中对x,y,z的解释与高层曲面函数mesh和surf等一样,其余的解释与前面介绍过的figure和axes等函数类似。 每个曲面对象也具有很多属性。除公共属性外,还有其他常用属性。,例 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=s

24、urface(Xdata,x,Ydata,y,Zdata,z,. Facecolor,get(ah,Color)+.1,Edgecolor,k,Marker,o,. MarkerFaceColor,.5 1 .85);,例 利用曲面对象绘制三维曲面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)

25、zlabel(z-axis); title(mesh-surf); pause set(hs,FaceColor,flat);,2.菜单设计,MATLAB的各个图形窗口有自己的菜单栏,包括File、Edit、Windows和Help等菜单项。为了建立用户自己的菜单系统,可以先将图形窗口的MenuBar属性事先设置为none,以取消图形窗口缺省的菜单,然后再建立用户自己的菜单。,2、菜单设计,1.建立用户菜单,要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立菜单条中的菜单项和子菜单中的菜单项。建立菜单条的函数调用形式为: 菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,) 建立子菜单的函数调用形式为: 子菜单句柄=uimenu(父菜单句柄,属性名1,属性值1,属性名2,属性值2,),2、菜单设计,2.菜单对象常用属性,(1) Tag属性 Tag属性的取值是字符串,它定义了该菜单对象的一个标识值。定义了Tag属性后,在任何程序中都可以通过这个标识值找出该菜单对象。 (2) Type属性 Type属的取值总是uimenu,这个属性值标明图形对象的类型。对菜单对象,其类型就是uimenu,用户不能改写这个属性。 (3) UserData属性 UserData属性的取值是一个矩阵,缺省值为空矩阵,用户可以在

温馨提示

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

评论

0/150

提交评论