图形界面设计.pptx

上传人:莉*** 文档编号:77383020 上传时间:2023-03-14 格式:PPTX 页数:48 大小:590.58KB
返回 下载 相关 举报
图形界面设计.pptx_第1页
第1页 / 共48页
图形界面设计.pptx_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《图形界面设计.pptx》由会员分享,可在线阅读,更多相关《图形界面设计.pptx(48页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、6.1.2 句柄图形对象的操作1.创建句柄图形对象h_objfunname(PropertyName,PropertyValue,)h_obj是图形对象的句柄;funname是函数名,每个创建的图形对象函数名与对象名相同;PropertyName是属性名,属性名是字符串;PropertyValue是属性值。例:h_f=figure(Position,200 300 500 400)%创建图形窗 h_a1=axes(position,0.1,0.05,.85,.85)%创建坐标轴例6-1:Ex6_1.m第1页/共48页2.访问句柄图形对象(1)获取当前图形对象的句柄 gcf%获取当前图形窗口的句

2、柄 gca%获取当前窗口当前坐标轴的句柄 gco%获取当前窗口当前对象的句柄 说明:返回值都是句柄,gco的当前对象句柄是指被鼠标最近点击过的对象。(2)查找对象句柄 h=findobj(h_obj,PropertyName,PropertyValue)%查找符合指定属性值的对象句柄第2页/共48页3.句柄图形对象属性的获取和设置a=get(h_obj,PropertyName)%获取图形对象的属性值a=set(h_obj,PropertyName,PropertyValue,.)%设置图形对象的属性值练习练习第3页/共48页例6-2 使用句柄图形对象绘制正弦曲线(ex6_2.m)。x=0:0

3、.1:10;y=sin(x);%创建无标题窗口 h_f=figure(Position,200 300 300 300,menubar,none);h_a1=axes(position,0.1,0.1,.8,.8);h_t=title(h_a1,正弦曲线);%创建标题 h_l=line(x,y);%建立曲线对象 set(gca,xtick,0 pi/2 pi 3*pi/2 2*pi 5*pi/2 3*pi)%设置x坐标轴刻度%设置坐标轴刻度标注 set(gca,xticklabel,0,pi/2,pi,3*pi/2,2pi,5*pi/2,3pi)set(gca,xgrid,on,ygrid,o

4、n);%设置坐标轴属性 set(h_l,linewidth,2)%设置线属性 set(get(h_t,parent),color,y)%设置标题的父对象属性%创建矩形框 h_ann0=annotation(gcf,rectangle,0.1 0.5.8 0.4,.FaceAlpha,.7,FaceColor,red);补充where_mathsworks.m第4页/共48页4.句柄图形对象的复制和删除(1)句柄图形对象的复制 new_handle=copyobj(h_obj,p)%复制图形对象h_obj(2)删除句柄图形对象 delete(h_obj)%删除图形对象(3)删除所有的句柄对象 c

5、lf(h_figure)%删除h_figure窗口中的所有可见对象 cla(h_axes)%删除h_axes坐标轴中的所有可见对象第5页/共48页6.2 图形用户界面(GUI)MATLAB的图形用户界面提供了包含按钮、文本框、标签等一系列交互控件,用户可以通过鼠标和键盘进行交互操作。M文件编辑器运行控 件面板对象浏览器界面设计区属性编辑器菜单编辑器对象对齐工具Tab顺序编辑器第6页/共48页6.2.1 图形用户界面概述在MATLAB主界面选择菜单“File”“New”“GUI”,或直接在命令窗口输入“Guide”命令都可以打开GUIDE快速开始界面。第7页/共48页6.2.2 设计一个简单的G

6、UI界面1.设计一个GUI界面的步骤(1)界面布局设计界面布局设计包括以下几个步骤:通过拖拽控件面板中的控件到界面设计区中;然后使用对象对齐工具(Align Objects)进行控件的布局调整,使用Tab顺序编辑器(Tab Order Editor)对各控件的Tab顺序进行较好地设置;如果界面需要菜单,则使用菜单编辑器(Menu Editor)进行菜单的设计;添加完控件后在对象浏览器(Object Browser)中就可以看到所有的图形对象,完成界面的布局设计。(2)属性设置打开属性编辑器(Property Inspector)对相关的属性进行修改。(3)编写回调函数第8页/共48页2.一个简

7、单的图形用户界面设计实例例6-3 创建一个用户界面,实现单击按钮在坐标轴中绘制正弦曲线的功能,运行界面如图6-6所示(simplegui.m/simplegui.fig)。(1)创建一个空白的GUI界面(2)创建控件(3)调整控件布局(4)设置各控件的Tab顺序(5)设置控件的属性(6)编写回调函数(7)运行GUI界面程序第9页/共48页3.GUI开发环境的常用工具(1)控件面板按钮pushbutton 其上的字符说明其作用静态文本static text 一般用来作为信息提示用文本框edit text 读取用户数据的文字窗口面板panel 概括一组控件,也可以修饰用列表框listbox 包含多

8、个选项供用户选择滚动条slider 图示某个范围切换按钮toggle button 两状态按钮,单击改变其状态。单选按钮radiobutton 一组选项,其中只能有一个被选中。复选框check box 一组选项,可以选择多项。下拉菜单popupmenu 选中时打开一个列表第10页/共48页(2)对象对齐工具 (3)对象浏览器第11页/共48页(4)Tab 顺序编辑器(5)属性编辑器窗口(6)菜单编辑器(7)M文件编辑器第12页/共48页6.2.3 回调函数和GUI程序文件1回调函数控件接收到用户的操作时调用的特定函数。一旦某一对象指定的事件发生,将自动调用某指定的函数,它可以是matlab文件

9、,也可以是一组matlab程序。(1)回调函数的类型每种控件根据控件功能的不同回调函数类型也不同。第13页/共48页CloseRequestFcn关闭窗口时响应函数KeyPressFcn键盘按下时响应函数windowButtonDownFcn-鼠标按下时响应函数WindowButtonMotionFcn-鼠标移动时响应函数CreateFcn和DeleteFcn-建立和删除对象时响应函数CallBack-对象被选中时响应函数第14页/共48页补充实例(my_callbackf.m):建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为450像素点

10、和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*);第15页/共48页(2)回调函数的自动命名GUIDE根据控件的Tag属性确定了回调函数的名称(3)回调函数的输入参数回调函数的输入参数也是由GUIDE自动

11、确定的,常用的有hObject、eventdata和 handles。function pushbutton1_Callback(hObject,eventdata,handles)%hObject handle to pushbutton1(当前回调函数的图形对象句柄)%eventdata reserved-to be defined in a future version of MATLAB (预留输入参数)%handles structure with handles and user data(存放图形窗口中所有图形对象句柄的结构体,存储了界面中所有控件菜单等的句柄,可以在函数之间传递

12、数据)例:在pushbutton1_callback 回调函数中获取axes1的属性:P=get(handles.axes1,position);%获取axes1的位置属性第16页/共48页2GUI程序文件(1).fig文件 保存GUI界面(2).m文件 保存GUI程序代码m文件结构:主函数:注释说明和窗口的初始化程序 function varargout=simplegui(varargin)子函数 OpeningFcn 打开窗口时的初始化程序OutputFcn函数是窗口的输出子函数,定义输出到命令窗口的变量其他的子函数是各控件的回调函数第17页/共48页6.2.4 按钮、滚动条和文本框控件

13、1控件的通用属性(1)Tag属性 图形对象的标识,是所有图形对象最重要的属性,对象的回调函数名自动以Tag属性命名(2)String属性 界面中的标签文字(3)Style属性 控件的类型(4)Visible属性 可见on/不可见off(6)Enable属性 有效on/无效off/不活动inactive(5)Fontsize属性第18页/共48页2按钮(Push Button)和切换按钮(Toggle Button)按钮主要用于响应鼠标的单击事件切换按钮两次鼠标单击响应不同状态按钮和切换按钮的常用属性都有Tag、string和value:value为1表示被单击,为0则未被单击;按钮默认的Tag

14、属性为pushbutton1,切换按钮为togglebutton1。当用户单击按钮或切换按钮调用callback回调函数;string属性是按钮上显示的文字,默认的string属性与Tag相同。第19页/共48页3滚动条(Slider)用来输入一定范围内的数值(1)常用属性常用属性有value、max、min和SliderStep。(2)回调函数滚动条的常用回调函数是callback,当每次单击滚动条改变当前值时调用该函数。4静态文本框(Static Text)和文本框(Edit Text)静态文本框用来显示文本,不能接收用户输入,用于文字说明;文本框可以显示文本,还可以接收用户输入静态文本框

15、和文本框的常用属性都有string和字体属性。静态文本框没有callback回调函数,一般不接收用户操作;而文本框有callback回调函数,当修改了文本框内容后可以调用。练习练习第20页/共48页例6-4(example6_4.fig/.m)创建一个用户界面,通过滚动条输入比例系数,使用文本框显示滚动条的当前值,单击按钮在静态文本框中显示传递函数。第21页/共48页6.2.5 单选按钮、复选框和面板1.单选按钮(Radio Button)和复选框(Check Box)用于用户输入参数单选按钮和复选框都有value、string和enable属性,value属性为1时表示被选中;string属

16、性为显示的文本;enable属性为on表示控件有效,无效控件显示为灰色。2面板(Panel)和按钮组(Button Group)面板和按钮组都是容器控件,将一组按钮、复选框等控件组织起来,便于布局按钮组对于一组单选按钮和切换按钮,每次点击只能选中一个按钮或切换按钮练习练习第22页/共48页例6-5 创建一个用户界面,使用单选按钮选择正弦函数的幅值,使用复选框输入正弦函数的时间范围,正弦函数的行向量在文本框中显示运行界面。(example6_5.m/fig)第23页/共48页6.2.6 下拉菜单、列表框、坐标轴和ActiveX控件1.下拉菜单(Pop-Up Menu)和列表框(List Box)

17、都是在下拉列表框中选择输入的,下拉菜单类似一组单选按钮,而列表框类似一组复选框。下拉菜单和列表框的常用属性都有string和value:string属性是所有的下拉列表项,可以在属性编辑器中输入,在程序代码中输入多个列表项时使用“|”分隔;value属性是当前所选项的序号,如果选择第一项,则value=1。第24页/共48页2.坐标轴(Axes)坐标轴是输出图形的区域,plot命令则是创建坐标轴并将图形输出到坐标轴中,可以使用 title、xlabel、ylabel、zlabel和 text函数在坐标轴中添加文本。坐标轴的默认Tag属性是axes1。例6-6 创建一个用户界面,使用列表框输入二

18、阶系统的阻尼系数,在两个坐标轴中分别绘制阶跃响应曲线和脉冲响应曲线(example66.m/.fig)第25页/共48页3.ActiveX控件ActiveX控件是使用其他应用程序的控件第26页/共48页6.2.7 菜单的设计1菜单编辑器在可视化界面环境中选择菜单“Tools”“Menu Editor”或单击工具栏 按钮,就会出现菜单编辑器窗口,其中“Menu Bar”是普通菜单设计面板。a)普通菜单设计面板 b)弹出式菜单设计面板第27页/共48页2回调函数每个菜单项都有callback回调函数,function new_Callback(hObject,eventdata,handles)3

19、.使用句柄对象创建菜单h_menu=uimenu(h_Parent,PropertyName,ProperValue,)%创建菜单说明:h_Parent是菜单的父对象,如果是窗体,则在窗体创建新菜单,如果是菜单则创建该菜单的子菜单。第28页/共48页补充实例(caidan.m):建立一个菜单系统菜单条中含有File和Help两个菜单项。如果选择File中的New选项,则将显示New Item字样,如果选择File中的Open选项,则将显示出Open Item字样。File中的Save菜单项初始时处于禁选状态,在选择Help选项之后将此菜单项恢复成可选状态,如果选择File中的Save As选项

20、,则将显示Save As Item字样。如果选择File中的Exit选项,则将关闭当前窗口。如果选择Help中About 选项,则将显示Help Item字样,并将Save菜单设置成可选状态。第29页/共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=uimenu(hf,label,&File);hhelp=uimenu(hf,label

21、,&Help);uimenu(hfile,label,&New,call,disp(New Item);uimenu(hfile,label,&Open,call,disp(Open Item);hsave=uimenu(hfile,label,&Save,Enable,off);uimenu(hfile,label,Save&As,call,disp(Save As Item);uimenu(hfile,label,&Exit,separator,on,call,close(hf);uimenu(hhelp,label,About.,call,.disp(Help Item);,set(hs

22、ave,Enable,on);第30页/共48页第31页/共48页6.3 对话框6.3.1 输入框输入框为用户的输入信息提供了界面,使用inputdlg函数创建,并提供了“Ok”和“Cancel”两个按钮,inputdlg函数的命令格式如下:answer=inputdlg(prompt,title,lineno,defans,addopts)%创建输入框例(ex6_7.m):prompt=请输入正弦函数的频率;%提示defans=10;w=inputdlg(prompt,输入,1,defans)第32页/共48页6.3.2 输出框1输出消息框输出消息框用来显示各种输出信息,使用msgbox函数

23、来创建,只有一个“Ok”按钮,并利用图标表示不同的信息类型,msgbox函数的命令格式如下:h=msgbox(message,title,icon,icondata,iconcmap,createmode)%创建输出消息框例(ex6_8.m):message=输入参数超出范围;icon=error;h=msgbox(message,出错,icon)练习练习第33页/共48页2.专用输出框 warndlg errordlg helpdlg questdlg listdlg补充实例(ex6_91.m)h=warndlg(error:,code1111.,Warning)h=errordlg(err

24、or:,code 1111.,Error)h=helpdlg(帮助信息:,帮助信息对话框和警告错误对话框基本一致,只是图标不同!,帮助)第34页/共48页6.3.3 文件管理框1.打开和保存文件 利用uigetfile函数显示打开文件对话框;uiputfile函数显示保存文件对话框 fname,pname=uigetfile(ffilter,strtitle,x,y)ffilter为文件名过滤器;strtiltle为对话框窗口标题栏的显示内容;x、y为对话框出现的位置,省略则采用默认位置。返回文件名字和路径第35页/共48页例:f,p=uigetfile(*.m;*.txt,请选择一个文件)f

25、=fileprint.mp=E:MATLABR11work第36页/共48页2.浏览文件夹 uigetdir函数可以浏览文件夹例:dirname=uigetdir(C:MATLAB701)第37页/共48页6.4 图像和声音6.4.1 图像MATLAB 7.3的图像处理工具箱可以读入、显示和处理多种标准的图像格式文件,包括.bmp、.gif、.jpg、.tif、.png、.hdf、.pcx、.xwd、.ico和.cur等。1图像类型(1)索引图像(2)灰度(强度)图像(3)RGB(真彩)图像第38页/共48页2.图像处理函数(1)图像文件的信息图像文件可以使用imfinfo函数查询其信息,包括

26、文件名、文件大小、图像尺寸、图像类型和每个像素的位数等信息。例:s1=imfinfo(nxq.jpg)(2)图像的读写x,map=imread(filename,fmt)%读取图像文件imwrite(x,map,filename,fmt)%写入图像文件说明:x是图像文件的数据矩阵;map是颜色表矩阵,可省略,当imread读取的不是索引图像时则为,当imwrite写入的不是索引图像,map省略;filename是图像文件名;fmt是文件格式,如bmp、cur、gif、jpg或ico等,可省略。(3)图像的显示h=imshow(x,low high)%按颜色表设定显示灰度图像h=imshow(x

27、,map)%显示图像h=imshow(filename)%显示图像文件例:图像的读入显示(myimage.m)第39页/共48页例:做一个花瓶,如图示。(提示:做一个旋转体表面,调入一幅图像对该表面进行彩绘,即用图像的色图索引作为表面体的色图索引)huaping.m第40页/共48页6.4.2 声音1读取和写入声音文件数据MATLAB 7.3提供了auread和wavread函数分别读取.au和.wav声音文件的数据,auwrite和wavwrite函数将声音数据写入文件,aufinfo和wavfinfo函数用来获取.au和.wav文件的信息。2播放声音文件 sound和soundsc函数实现

28、将向量转换为音频信号,并转换到speaker进行的播放;audioplayer创建一个音频播放器对象,用来播放声音信号;beep实现响铃。例6-13 (mysound.m)第41页/共48页6.5 视频与动画设计6.5.1 视频MATLAB 7.3的视频帧称为MATLAB Movie,是结构体类型,包括cdata和colormap两个域,分别用来存放图像数据和颜色表,通过Movie函数可以实现播放AVI视频文件,以及读取和生成MATLAB Movie。1.获取视频文件的信息mmfileinfo函数用来获取各种多媒体文件的信息,包括视频和音频文.avi、.mpg、.wav、.mp3、.wma和.

29、mid等;aviinfo函数用来获取视频或音频.avi文件的信息,使用mmfileinfo和aviinfo函数获取的文件信息是不同的。第42页/共48页2读取视频数据(1)aviread函数mov=aviread(filename,index)%获取filename文件的视频帧(2)getframe函数f=getframe(h,rect)%获取图形对象的视频帧3.播放视频文件movie(M,n)%将视频帧M播放n遍例:ex6_14.m第43页/共48页6.5.2 以电影方式创建动画以电影方式是将多个画面逐帧播放,类似于电影的原理,创建动画的步骤如下:(1)使用getframe命令来抓取每个视频

30、帧,视频帧以列向量保存到矩阵中,一般使用for循环来抓取并保存每个视频帧;(2)使用movie命令来播放视频帧矩阵。例6-15(ex6_15.m)以电影方式产生视频帧并播放动画,显示二阶系统当阻尼系数在01范围内不断增大时,阶跃响应曲线的动画。第44页/共48页6.5.3 以对象方式创建动画创建动画的步骤如下:(1)绘制背景图(2)设置对象擦除属性设置动作对象的擦除属性,擦除属性EraseMode有四种,normal是重画整个图形,background是擦除背景,会擦除对象和它下面的其他图像;xor是只画与背景色不一致的新对象点,擦除不一致的原对象点,通常这种方式用来创建动画;none是不做任

31、何擦除。(3)确定对象的新位置计算得出动作对象每次的新位置,设置对象的xdata和ydata属性。(4)刷新屏幕绘制了新对象后应该刷新屏幕,使新对象显示出来,刷新屏幕用drawnow命令实现。第45页/共48页例6-16 以对象方式创建动画,显示一个红色圆点沿三维曲线移动的动画。(ex6_16.m)第46页/共48页6.6 综合应用实例例6-17(ex6_17.m)创建一个用户界面分析RLC电路,在坐标轴中显示RLC电路图图像,用户在文本框中输入R、L、C参数后,单击“计算传递函数”按钮计算并显示传递函数,单击“画图”按钮在坐标轴中绘制阶跃曲线 补充实例:gui_counter1.m第47页/共48页感谢您的观看。第48页/共48页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com