第七章 Matalb的GUI设计

上传人:e****s 文档编号:243757601 上传时间:2024-09-30 格式:PPT 页数:47 大小:456.50KB
返回 下载 相关 举报
第七章 Matalb的GUI设计_第1页
第1页 / 共47页
第七章 Matalb的GUI设计_第2页
第2页 / 共47页
第七章 Matalb的GUI设计_第3页
第3页 / 共47页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第6章 MATLAB 绘图 (3),第七章 Matalb的GUI设计,1,7.1 句柄图形,句柄图形体系,1 图形对象和句柄,图形对象是一组紧密相关、形成惟一整体的子对象的集合,并且子对象可以被单独地操作。,在创建每一个图形对象时,都为该对象分配惟一的一个,数值,称为图形对象句柄,。句柄是图形对象的惟一标识符,不同对象的句柄是不同的。,2,2 句柄图形的结构,由图形创建函数产生的每一个对象都是图形对象,包括图形窗口、坐标轴、线条、曲面和文本,这些对象按父对象和子对象组成层次结构。,计算机屏幕是根对象,并且是所有其他对象的父对象。,图形窗口是根对象的子对象,坐标轴和用户界面对象是图形窗口的子对象,线条、文本、曲面、贴片和图像对象是坐标轴对象的子对象。,3,各图形对象的句柄数据格式:,根屏幕,0,图形窗口 整数,表示图形窗口数,其它对象 对应的符点数,4,窗口1,窗口n,窗口2,界面控制,界面菜单,轴,线,面,字,块,像,根屏幕,5,窗口对象,线对象,轴对象,6,面对象,轴对象,像对象,块对象,线对象,文字对象,7,所有能创建图形对象的,matlab,函数都可给出所创建图形对象的句柄,例:创建1号窗口,返回句柄,h=figure(1),h=1 返回值为窗口号数,例:h=line(1:6,1:6)创建线对象的同时也建立了一个唯一的句柄,变量h是句柄值符点数,8,7.2 图形对象的建立,1 图形窗口对象,figure:,建立新的图形窗口的函数h=figure(,PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,),功能:,建立图形窗口并设置指定属性的属性值,将句柄值赋给句柄变量h。其中PropertyName, PropertyValue(即属性名,属性值)构成属性二元对,该属性二元对还可以用,结构数组,表示。,9,h=figure(color, 1 0 1,name,hao),10,figure,或,h =figure,功能:,按默认的属性值建立图形窗口,。,要关闭图形窗口,使用close函数,调用格式为:,close(h),功能:,关闭句柄为h的图形窗口。,close all,功能:,关闭所有的图形窗口。,注意,clf,命令则是清除当前图形窗口的内容,但不关闭窗口。,11,2 坐标轴对象,axes:,建立坐标轴对象,a=axes(,PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,),功能:,用指定的属性在当前图形窗口创建坐标轴,并将其句柄值赋给句柄变量a。,axes,或,a=axes,功能:,按默认的属性值在当前图形窗口创建坐标轴。,12,3 曲线对象,line:,建立曲线对象,L=line(x,y,z,PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,),功能:,绘制曲线,并将句柄值赋给句柄变量,L,,其中,x,y,z,的含义与高层绘图函数,plot,和,plot3,等一样。,13,x=0:pi/100:pi;,y=sin(x);,h=,line(x,y,color,0.5 0.0.9 ,linewidth,4,linestyle,:),14,4 文字对象,text:,建立文字对象的函数,t=text(x,y,z,说明文字,PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,),功能:,在指定位置和以指定的属性值添加文字说明,,并保存句柄值为t。说明文字中除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符。,15,text(1.5,1,sin(x),fontsize,20),16,5 曲面对象,surface:,建立曲面对象,s=surface(x,y,z,PropertyName1, PropertyValue1,PropertyName2, PropertyValue2,),功能:,建立句柄值为s的曲面对象。其中对x,y,z的含义与曲面绘制函数mesh和surf等一样。,17,7.3 对象句柄的获取方法,句柄值的获取方法:,1)追溯法获取句柄,h_pa=get(h_known,parent),功能:,获取h_known的父对象句柄值,并赋给h_pa。,h_ch=get(h_known,children),功能:,获取h_known的子对象的句柄值,并赋给h_ ch。,18,2)当前对象句柄的获取,Hf_fig=gcf,功能:,返回当前图形窗口的句柄值,并赋给Hf_fig,Ha_ax=,gca,功能:,返回当前图形的当前坐标轴的句柄值,并赋给,Ha_ax,。,Hx_obj,=,gco,功能:,获取当前对象的句柄值,并赋给,Hx_obj,。,Hx_obj,=,gco(Hf_fig,),功能:,返回句柄值为,Hf_fig,的图形中当前对象的句柄值。,19,3) 根据对象特性获取句柄,findobj,函数是根据对象特性获取句柄的一种重要方法。调用格式如下:,h=findobj(h-ori,PropertyName, PropertyValue),h=findobj PropertyName, PropertyValue,),功能,:,获取根和根以下以,属性二元对(,PropertyName, PropertyValue)指定属性值的对象的句柄值,,并赋给,h。,20,H= findobj,功能:,获取根对象和所有子对象的句柄值,并赋给H。,H= findobj (ObjectHandles),功能,:,获取句柄为,ObjectHandles,对象,中列出的对象和它们的子对象的句柄值,,,并赋给,H,。,21,7.4 对象属性的获取和设置,句柄图形建立后,应用函数get和,set,获取和设置对象的属性。,get(h_obj),获取句柄对象所有属性的当前值,get(h_obj, PropertyName),获取句柄对象h_obj的属性名为PropertyName的当前值,set(h_obj),显示句柄对象所有属性和属性值。,22,set(h_obj, ,PropertyName, ,PropertyValue,),设置句柄对象指定属性名的属性值,23,get(h_obj, DefaultObjectTypePropertyName),获取对象属性的默认值,set(h_obj, ,DefaultObjectTypePropertyName,PropertyValue,),设置属性的用户定义默认值,set(h_obj, ,DefaultObjectTypePropertyName, Remove),删除属性的用户定义默认值,24,例:作正弦、余弦曲线,将正弦曲线改为虚,线,将余弦曲线幅度减为1/2高度,如何用,句柄实现。,x=0:2*pi/180:2*pi;,y1=sin(x);y2=cos(x);,plot(x,y1,x,y2,x,zeros(size(x) ),w:),25,首先查询各对象的属性,get(gcf),h=get(gcf,children),h =,hh=get(gca,children),hh =,26,修改属性,y11=get(hh(2),ydata);,y22=y11/2;,set(hh(2),ydata,y22),set(hh(3),linestyle,:),27,7.5,图形用户界面,7.5.1 图形用户界面对象层次结构,图形用户界面(Graphical User Interfaces,GUI):,由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。,用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。,MATLAB中设计图形用户界面的方法有两种:,使用可视化的界面环境和通过编写程序。,用户菜单、用户控件和对话框是和坐标轴处于同一层次的,都是图形窗口的子对象。,28,图形用户界面设计工具的启动,图形用户界面设计工具的启动方式:,1)命令方式,图形用户界面GUI设计工具的启动命令为guide,格式为:,guide,功能:,启动GUI设计工具,并建立名字为的图形用户界面。,guide FN,功能:,启动GUI设计工具,并打开已建立的图形用户界面FN。,29,2) 菜单方式,在MATLAB的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示GUI的设计模板。,4种模板分别是:,Blank GUI(Default)(空白模板,默认),GUI with Uicontrols(带控件对象的GUI模板),GUI with Axes and Menu(带坐标轴与菜单的GUI模板),Modal Question Dialog(带模式问题对话框的GUI模板)。,当用户选择不同的模板时,在GUI设计模板界面的右边就会显示出与该模板对应的GUI图形。,30,图形用界面设计工具启动时模板选择对话框,31,图形用户界面设计窗口的组成,图形用户界面GUI设计窗口由,菜单栏、工具栏、控件工具栏以及图形对象设计区,等4个功能区组成。,GUI设计窗口的菜单栏有,File、Edit、View、Layout、Tools和Help,菜单项,使用其中的命令可以完成图形用户界面的设计操作。,编辑工具在菜单栏的下方,提供了常用的工具;设计工具区位于窗口的左半部分,提供了设计GUI过程中所用的用户控件;,空间模板区是网格形式的用户设计GUI的空白区域。,32,用户界面设计过程中常用的工具有5个,分别是:,对象属性查看器(Property Inspector),菜单编辑器(Menu Editor),位置调整工具(Align Objects),对象浏览器(Object Browser),Tab顺序编辑器(Tab Order Editor),33,1 对象属性查看器,利用对象属性查看器,可以查看每个对象的属性值,也可以修改、设置对象的属性值。在选中某个对象后,可以通过对象属性查看器,查看该对象的属性值,也可以方便地修改对象属性的属性值。,对象属性查看器的打开方式有四种:,1)从GUI设计窗口工具栏上选择Property Inspector命令按钮;,2)选择View菜单下的Property Inspector;,3)在命令窗口中输入inspect;,4)在控件对象上单击鼠标右键,选择弹出菜单的Property Inspector。,34,2 菜单编辑器,利用菜单编辑器,可以创建、设置、修改下拉式菜单和快捷菜单。选择Tools菜单下的Menu Editor.子菜单,即可打开菜单编辑器。,菜单也可以通过编程实现,方法为从GUI设计窗口的工具栏上选择Menu Editor命令按钮;在GUI的空白区域单击鼠标右键,选择弹出菜单的Menu Editor,打开菜单编辑程序。,35,3 位置调整工具,利用位置调整工具,可以对GUI对象设计区内的多个对象的位置进行调整。位置调整工具的打开方式有两种:,1)从GUI设计窗口的工具栏上选择Align Objects命令按钮;,2)选择Tools菜单下的Align Objects.菜单项,就可以打开对象位置调整器。,36,4 对象浏览器,利用对象浏览器,可以查看当前设计阶段的各个句柄图形对象。对象浏览器的打开方式有:,1)从GUI设计窗口的工具栏上选择Object Browser命令按钮;,2)选择View菜单下的Object Browser子菜单;,3)在设计区域单击鼠标右键,选择弹出菜单的Object Browser。,37,5 Tab顺序编辑器,利用Tab顺序编辑器Tab Order Editor,可以设置用户按键盘上的Tab键时,对象被选中的先后顺序。,Tab顺序编辑器的打开方式为:,1)选择Tools菜单下的Tab Order Editor.菜单项,就可以打开Tab顺序编辑器。,2)从GUI设计窗口的工具栏上选择Tab Order Editor.命令按钮。,38,7.6 GUI控件介绍,39,40,7.7 常见属性介绍,Label:菜单上显示出来内容,如file,edit,Tag:每一个控件的标签,如人的姓名一样,是唯一的,不要重复。,String:文本框或者按钮上显示内容。,Value:操作某个控件的返回值。,Callback:触发某个控件或菜单时的响应,41,用户,菜单,1 自定义的用户菜单,P324,unimenu:,自定义的用户菜单,Hm=unimenu(Hp,PropertyName1,PropertyValue1,PropertyName2,PropertyValue2,),Uicontextmenu,:建立快捷菜单,Uicontrol:,建立控件对象,42,h=gcf;,hf=uimenu(h,tag,file,label,File);,uimenu(hf,tag,file,label,new);,uimenu(hf,tag,file,label,colse,separator,on);,hc=uicontextmenu(tag,con1),uimenu(hc,tag,file,label,red);,uimenu(hc,tag,file,label,green,separator,on);,set(h,uicontextmenu,hc),uicontrol(h,style,pushbutton,string,test,position,10 300 100 30);,43,相关重要函数:,Get(hObject,属性名),Set(hObject,属性名,属性值),Str2num :把字符串转为双精度数,如a=10, b=str2num(a),则b=10,Num2str :把双精度数转为字符串,Strcat : 字符串连接,如 strcat(A,B),结果为 AB,Strcmp (str1,str2): 两字符串比较,若相等返回值为1,不等为0;,44,Strfind(A,B)在A中找和B相等的字符串,如果存在,返回在A中位置,不存在返回空。,Isempty(A) : 判断A值是否为空(即是否为),45,课程设计题目:,设计一个计算器。,要求至少完成加、减、乘、除功能;,扩充:矩阵运算(加、减、点乘,点除,乘,除,乘方等),2. 设计一个绘图界面。,要求:能选择绘制二维曲线,三维曲线,三维网格,三维曲面,柱状图,饼图等功能。,两者任选一个,也可同时做,要求界面要整齐划一,富有美感!,46,考试时间:号下午,考试形式:笔试,考试题型:填空和大题(7道),47,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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