资源预览内容
第1页 / 共49页
第2页 / 共49页
第3页 / 共49页
第4页 / 共49页
第5页 / 共49页
第6页 / 共49页
第7页 / 共49页
第8页 / 共49页
第9页 / 共49页
第10页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第6章 MATLAB高级图形设计6.1 句柄图形对象 6.2 图形用户界面(GUI) 6.3 对话框 6.4 图像和声音 6.5 视频与动画设计 6.1 句柄图形对象6.1.1 句柄图形对象体系 句柄(Handle)是每个图形对象唯一的标识,不同对象的句柄不能重 复,通过句柄可以对图形对象的属性进行操作。Root根屏幕Figure图形UI Objects用户接口对象Core Objects 核心对象Plot Objects 绘图对象Group Objects 组对象Annotation Objects 注释对象 图像Axes轴Uibuttongroup 按钮组Uicontrol 控件对象Uicontextmenu 上下文菜单Uimenu 菜单 图像Uipanel 面板Uitoolbar 工具栏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.m2. 访问句柄图形对象 (1)获取当前图形对象的句柄 gcf %获取当前图形窗口的句柄 gca %获取当前窗口当前坐标轴的句柄 gco %获取当前窗口当前对象的句柄 说明:返回值都是句柄,gco的当前对象句柄 是指被鼠标最近点击过的对象。 (2)查找对象句柄 h=findobj(h_obj,PropertyName, PropertyValue) %查找符合指定属性值的对象句柄3. 句柄图形对象属性的获取和设置a=get(h_obj,PropertyName) %获取图形对 象的属性值a=set(h_obj,PropertyName,PropertyValue ,.)%设置图形对象的属性值练习例6-2 使用句柄图形对象绘制正弦曲线(ex6_2.m)。 x=0:0.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,on); %设置坐标轴属性 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.m4. 句柄图形对象的复制和删除(1)句柄图形对象的复制 new_handle = copyobj(h_obj,p) %复制图形对象h_obj(2)删除句柄图形对象 delete(h_obj)%删除图形对象(3)删除所有的句柄对象 clf(h_figure) %删除h_figure窗口中的所有可见对象 cla(h_axes)%删除h_axes坐标轴中的所有可见对象6.2 图形用户界面(GUI)MATLAB的图形用户界面提供了包含按钮、文本框 、标签等一系列交互控件,用户可以通过鼠标和键 盘进行交互操作。M文件编辑器运行控件 面板对象浏览器界面设 计区属性编辑器菜单编辑器对象对齐工具Tab顺序编辑器6.2.1 图形用户界面概述在MATLAB主界面选择菜单 “File”“New”“GUI”,或直接在命令窗口输 入“Guide”命令都可以打开GUIDE快速开始界 面 。6.2.2 设计一个简单的GUI界面1. 设计一个GUI界面的步骤 (1)界面布局设计 界面布局设计包括以下几个步骤: 通过拖拽控件面板中的控件到界面设计区中; 然后使用对象对齐工具(Align Objects)进行控件的布局 调整,使用Tab顺序编辑器(Tab Order Editor)对各控件 的Tab顺序进行较好地设置; 如果界面需要菜单,则使用菜单编辑器(Menu Editor)进 行菜单的设计; 添加完控件后在对象浏览器(Object Browser)中就可以 看到所有的图形对象,完成界面的布局设计。 (2)属性设置 打开属性编辑器(Property Inspector)对相关的属性进行 修改 。 (3)编写回调函数2. 一个简单的图形用户界面设计实例例6-3 创建一个用户界面,实现单击按钮在坐标 轴中绘制正弦曲线的功能,运行界面如图6-6所示 (simplegui.m/simplegui.fig) 。(1)创建一个空白的GUI界面(2)创建控件(3)调整控件布局(4)设置各控件的Tab顺序(5)设置控件的属性(6)编写回调函数(7)运行GUI界面程序3.GUI开发环境的常用工具(1) 控件面板按钮pushbutton 其上的字符说明其作用静态文本static text 一般用来作为信息提示用文本框edit text 读取用户数据的文字窗口面板panel 概括一组控件,也可以修饰用列表框listbox 包含多个选项供用户选择滚动条slider 图示某个范围切换按钮toggle button 两状态按钮,单击改变其状态。单选按钮radiobutton 一组选项,其中只能有一个被选中。复选框check box 一组选项,可以选择多项。下拉菜单popupmenu 选中时打开一个列表(2)对象对齐工具 (3) 对象浏览器(4) Tab顺序编辑器(5) 属性编辑器窗口(6) 菜单编辑器(7) M文件编辑器6.2.3 回调函数和GUI程序文件1回调函数控件接收到用户的操作时调用的特定函数。 一旦某一对象指定的事件发生,将自动调用 某指定的函数,它可以是matlab文件,也可 以是一组matlab程序。(1) 回调函数的类型每种控件根据控件功能的不同回调函数类型 也不同。CloseRequestFcn关闭窗口时响应函数KeyPressFcn键盘按下时响应函数windowButtonDownFcn-鼠标按下时响应函数WindowButtonMotionFcn-鼠标移动时响应函数CreateFcn和DeleteFcn-建立和删除对象时响应 函数CallBack-对象被选中时响应函数补充实例(my_callbackf.m): 建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形 窗口”,起始于屏幕左下角、宽度和高度分别为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*);(2) 回调函数的自动命名 GUIDE根据控件的Tag属性确定了回调函数的名称 (3) 回调函数的输入参数 回调函数的输入参数也是由GUIDE自动确定的,常用的有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 (存放图形窗口中所有图形 对象句柄的结构体,存储了界面中所有控件菜单等的句柄,可以在函数之间传 递数据) 例: 在pushbutton1_callback 回调函数中获取axes1的属性: P=get(handles.axes1,position) ; %获取axes1的位置属性2GUI程序文件 (1).fig文件 保存GUI界面 (2).m文件 保存GUI程序代码 m文件结构 : 主函数:注释说明和窗口的初始化程序 function varargout = simplegui(varargin) 子函数 OpeningFcn 打开窗口时的初始化程序 OutputFcn函数是窗口的输出子函数,定义输出到命 令窗口的变量 其他的子函数是各控件的回调函数6.2.4 按钮、滚动条和文本框控件1控件的通用属性(1)Tag属性 图形对象的标识,是所有图形对象 最重要的属性,对象的回调函数名自动以Tag属性 命名(2)String属性 界面中的标签文字 (3)Style属性 控件的类型(4)Visible属性 可见on/不可见off(6)Enable属性 有效on/无效off/不活动inactive(5)Fontsize属性2按钮(Push Button)和切换按钮(Toggle Button)按钮主要用于响应鼠标的单击事件切换按钮两次鼠标单击响应不同状态按钮和切换按钮的常用属性都有Tag、string和value:value为1表示被单击,为0则未被单击;按钮默认的Tag属性为pushbutton1,切换按钮为 togglebutton1。当用户单击按钮或切换按钮调用callback 回调函数;string属性是按钮上显示的文字,默认的string属性与Tag相 同。3滚动条(Slider)用来输入一定范围内的数值(1)常用属性常用属性有value、max、min和SliderStep。(2)回调函数滚动条的常用回调函数是callback,当每次单击滚动条改变当前 值时调用该函数。4静态文本框(Static Text)和文本框(Edit Text)静态文本框用来显示文本,不能接收用户输入,用于文字说明;文本框可以显示文
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号