《新编MATLAB&Simulink自学一本通》课件第5章 图形用户界面(GUI)编程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《新编MATLAB&Simulink自学一本通》课件第5章 图形用户界面(GUI)编程.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新编MATLAB&Simulink自学一本通 新编MATLAB&Simulink自学一本通课件第5章 图形用户界面GUI编程 新编 MA
- 资源描述:
-
1、2023-5-5主要内容主要内容 图形对象图形对象 图形用户界面的设计原则和步骤图形用户界面的设计原则和步骤 图形用户界面的开发方法图形用户界面的开发方法 直接编写直接编写M文件开发图形用户界面文件开发图形用户界面 利用利用GUIDE工具开发图形用户界面工具开发图形用户界面 典型案例介绍典型案例介绍 2023-5-5第一节第一节 图形对象图形对象2023-5-5 1 1、图形对象:、图形对象:MATLABMATLAB用来显示数据和创建图形用户界面的基本元素。用来显示数据和创建图形用户界面的基本元素。例如:程序界面上的按钮、菜单、工具条等。例如:程序界面上的按钮、菜单、工具条等。2 2、图形对象
2、的标识:、图形对象的标识:使用使用“句柄句柄”来标识每一个图形对象的来标识每一个图形对象的实例实例。通过句。通过句柄,用户就可以找到相应图形对象的各项属性,进而修改柄,用户就可以找到相应图形对象的各项属性,进而修改这些属性,以产生不同的图形呈现效果。这些属性,以产生不同的图形呈现效果。一、图形对象的概念一、图形对象的概念2023-5-5 如右图所示的图形用户界面如右图所示的图形用户界面包括如下图形对象:包括如下图形对象:(1 1)一个)一个坐标轴坐标轴,用来在其中,用来在其中绘图;绘图;(2 2)一个)一个弹出式菜单弹出式菜单,列出,列出MATLABMATLAB中的三个函数:中的三个函数:pe
3、akspeaks、membranemembrane和和sincsinc;(3 3)一个)一个静态文本框静态文本框,提示用,提示用户选择弹出式菜单项;户选择弹出式菜单项;(4 4)三个)三个下压按钮下压按钮,用来调用,用来调用相应的绘图命令来绘制图形。相应的绘图命令来绘制图形。2023-5-5二、二、图形对象的类型图形对象的类型1.图形对象的层次关系图形对象的层次关系 根据图形对象之间的依赖关系,根据图形对象之间的依赖关系,MATLABMATLAB将所有图形对将所有图形对象组织在一个象组织在一个树形结构的层次关系表树形结构的层次关系表中中 ,如下图所示。处,如下图所示。处在树形结构上层的对象是下
4、层对象的在树形结构上层的对象是下层对象的父对象父对象;处在树形结处在树形结构下层的对象是上层对象的构下层的对象是上层对象的子对象子对象。例如:例如:axes对象是对象是figure对象的子对象,或者说对象的子对象,或者说figure对对象是象是axes对象的父对象。对象的父对象。2023-5-5对象类型对象类型父对象父对象对象描述对象描述根对象根对象root无无对应于计算机的屏幕对应于计算机的屏幕图形窗口对象图形窗口对象figureroot屏幕上的一个图形窗口,句柄值是整数,在窗口的标题中给出屏幕上的一个图形窗口,句柄值是整数,在窗口的标题中给出,如,如1、2、3、坐标轴坐标轴axesfigu
5、re在图形窗口中定义一个图形区域,用来描述子对象的位置和方在图形窗口中定义一个图形区域,用来描述子对象的位置和方向向用户控件用户控件uicontrolfigure用户界面控制。当用户点击对象时,用户界面控制。当用户点击对象时,MATLAB完成一个相应的完成一个相应的动作动作用户菜单用户菜单uimenufigure创建一个窗口菜单,用户使用菜单来控制程序运行创建一个窗口菜单,用户使用菜单来控制程序运行现场菜单现场菜单uicontextmenufigure创建与图形对象关联的快捷菜单创建与图形对象关联的快捷菜单图像图像imageaxes用当前的色图矩阵定义一个图像。图像可以有自己的色图用当前的色图
6、矩阵定义一个图像。图像可以有自己的色图灯光灯光lightaxes影响补片和曲面对象的光源影响补片和曲面对象的光源线条线条lineaxes使用使用plot、plot3、contour和和contour3等函数创建的一些简单等函数创建的一些简单的图形的图形补片补片patchaxes创建有边界的填充多边形创建有边界的填充多边形矩形矩形rectangleaxes从椭圆到矩形变化的二维形状从椭圆到矩形变化的二维形状曲面曲面surfaceaxes将数据作为将数据作为x-y平面高度创建的三维矩阵数据描述平面高度创建的三维矩阵数据描述文本文本textaxes字符串,它的位置由其父对象来指定字符串,它的位置由其
7、父对象来指定2、MATLAB图形对象种类图形对象种类 2023-5-5 在进行图形用户界面编程时,用户最关心的是电脑屏幕的在进行图形用户界面编程时,用户最关心的是电脑屏幕的尺寸,用户需要根据电脑屏幕的尺寸(通常用像素点来表示)尺寸,用户需要根据电脑屏幕的尺寸(通常用像素点来表示)来确定图形窗口的尺寸大小。来确定图形窗口的尺寸大小。【例例】在命令窗口中输入命令以查询计算机屏幕的尺寸在命令窗口中输入命令以查询计算机屏幕的尺寸【注】计算机屏幕是一个根对象计算机屏幕是一个根对象(root)(root)。在。在MATLABMATLAB中,可中,可以使用以使用setset和和getget命令来设置它的属性
8、。通常,命令来设置它的属性。通常,rootroot对象的对象的所有属性都采用默认值,用户不必进行修改。所有属性都采用默认值,用户不必进行修改。rootroot对象的句柄值为对象的句柄值为0 0。get(0,Units)%取得表示屏幕尺寸的单位,默认为像素(取得表示屏幕尺寸的单位,默认为像素(pixels)ans=pixels get(0,ScreenSize)%取得屏幕的尺寸,为取得屏幕的尺寸,为1280800像素点像素点ans=1 1 1280 8002023-5-5三、三、图形对象的属性图形对象的属性 图形对象的属性图形对象的属性可以控制对象的外观和行为等许多方面的可以控制对象的外观和行为
9、等许多方面的性质。性质。对象的属性既包括对象的属性既包括对象的一般信息对象的一般信息,例如对象的类型、父,例如对象的类型、父对象和子对象等;又包括对象和子对象等;又包括对象的特定的、独一无二的信息对象的特定的、独一无二的信息,例,例如如figurefigure对象中对鼠标控制的对象中对鼠标控制的WindowButtonDownFcnWindowButtonDownFcn、WindowButtonMotionFcnWindowButtonMotionFcn等属性。等属性。MATLAB MATLAB将图形对象的信息组织成一个将图形对象的信息组织成一个层次表层次表,并将这些信,并将这些信息储存在该对
10、象的属性中。例如,息储存在该对象的属性中。例如,rootroot属性表包括当前图形窗属性表包括当前图形窗口的句柄和当前的指针位置;口的句柄和当前的指针位置;figurefigure属性表包括其子对象的列属性表包括其子对象的列表并始终跟踪窗口中发生的特定事件,等等。表并始终跟踪窗口中发生的特定事件,等等。2023-5-5 一些属性对于所有的图形对象来说具有相同的含义。下表一些属性对于所有的图形对象来说具有相同的含义。下表列出了图形对象的这些共有的属性。列出了图形对象的这些共有的属性。对象类型对象类型对象描述对象描述BusyAction控制控制MATLAB处理特定对象回调函数中断的方法。如果处理特
11、定对象回调函数中断的方法。如果Interruptible设置为设置为off,BusyAction可以有下面几种情况:可以有下面几种情况:queue:此为缺省值。表示将回调函数的中断请求放入一个挂起队列中直到对象的:此为缺省值。表示将回调函数的中断请求放入一个挂起队列中直到对象的回调函数完成;回调函数完成;cancel:忽略其它回调函数所有可能的中断:忽略其它回调函数所有可能的中断ButtonDownFcn定义用鼠标左键点击图形对象时执行的回调函数定义用鼠标左键点击图形对象时执行的回调函数Children保存对象的所有子对象句柄的向量保存对象的所有子对象句柄的向量Clipping图形对象显示模式
12、。图形对象显示模式。on(缺省值):只显示在坐标轴界限内的部分图形对象;(缺省值):只显示在坐标轴界限内的部分图形对象;off:同时显示坐标轴界限内外的部分同时显示坐标轴界限内外的部分CreateFcn创建图形对象时执行的回调函数,常用缺省值创建图形对象时执行的回调函数,常用缺省值DeleteFcn用户销毁图形对象时执行的回调函数用户销毁图形对象时执行的回调函数HandleVisibility控制对象句柄的访问方式。控制对象句柄的访问方式。on:(缺省值),总是可以访问;:(缺省值),总是可以访问;callback:只有回调函数或者调用回调函数的函数可以访问,这样可以防止用户从:只有回调函数或
13、者调用回调函数的函数可以访问,这样可以防止用户从命令行中对图形对象进行修改,以防止误操作;命令行中对图形对象进行修改,以防止误操作;off:不可访问。:不可访问。2023-5-5Interruptible决定回调函数是否可以被随后调用的回调函数中断,有决定回调函数是否可以被随后调用的回调函数中断,有on和和off两两个值可以设置个值可以设置Parent该对象的父对象的句柄该对象的父对象的句柄Selected该对象是否被选中,可以设置为该对象是否被选中,可以设置为on或或offSelectionHighlight定义对象是否使用可见方式表明被选中状态,可以设置为定义对象是否使用可见方式表明被选中
14、状态,可以设置为on(缺省值(缺省值)或者)或者offTag用户用来标识对象的字符串用户用来标识对象的字符串Type对象的类型,是对象的类型,是figure、axes、line或者或者text等等UserData是一个矩阵,包含用户要在对象中保存的数据。矩阵数据并不被对象本是一个矩阵,包含用户要在对象中保存的数据。矩阵数据并不被对象本身使用身使用UIContextMenu和对象相关联的现场菜单句柄。当在对象上点击鼠标右键时,将显示出和对象相关联的现场菜单句柄。当在对象上点击鼠标右键时,将显示出现场菜单现场菜单Visible决定对象是否可见,值可以为决定对象是否可见,值可以为on或者或者off续
15、前表:续前表:2023-5-5 MATLAB为所有对象都设置了为所有对象都设置了缺省值缺省值。用户在创建图形。用户在创建图形对象时,如果没有指定其属性值,则对象时,如果没有指定其属性值,则MATLAB会使用对象的会使用对象的系统缺省属性值来创建对象。可以在命令窗口中使用系统缺省属性值来创建对象。可以在命令窗口中使用get命令命令来查询这些缺省的属性值,来查询这些缺省的属性值,所有缺省属性值均以所有缺省属性值均以factory开头,开头,表示其表示其“出厂出厂”设置设置。【例例】查询出厂设置查询出厂设置get(0,factory)ans=factoryFigureAlphamap:1x64 do
16、uble factoryFigureBusyAction:queue factoryFigureButtonDownFcn:factoryFigureClipping:on factoryFigureCloseRequestFcn:closereq factoryFigureColor:0 0 0 factoryFigureColormap:64x3 double .2023-5-5 用户不仅可以用户不仅可以查询查询当前任意图形对象的属性值,而且可以当前任意图形对象的属性值,而且可以设置设置对象的大多数属性值(某些属性被设置为对象的大多数属性值(某些属性被设置为“只读只读”,用,用户只能查询,
17、不能修改)。户只能查询,不能修改)。属性值只属性值只对对象的特定实例起作用对对象的特定实例起作用,即修改对象的属性值,即修改对象的属性值不会对同类对象、不同实例的属性值产生影响。例如,修改不会对同类对象、不同实例的属性值产生影响。例如,修改坐标轴坐标轴1的刻度值,坐标轴的刻度值,坐标轴2的刻度值则不会受影响,等等。的刻度值则不会受影响,等等。由于是层次结构,所以由于是层次结构,所以某个对象的属性改变时,会影响到某个对象的属性改变时,会影响到这个结构中它以下的对象这个结构中它以下的对象。例如,如果使用鼠标改变图形窗。例如,如果使用鼠标改变图形窗口在电脑屏幕上的位置,线条和坐标轴对象的位置也随之改
18、口在电脑屏幕上的位置,线条和坐标轴对象的位置也随之改变。变。有两种方法可以用来修改对象的属性值:有两种方法可以用来修改对象的属性值:一种是在创建对一种是在创建对象的时候设置;另一种是在创建完成后,通过获得对象的句象的时候设置;另一种是在创建完成后,通过获得对象的句柄,调用柄,调用setset函数来修改对象的属性值。函数来修改对象的属性值。2023-5-5【例例】查询图形对象的属性值查询图形对象的属性值可以通过如下命令查询当前图形对象的缺省属性值。可以通过如下命令查询当前图形对象的缺省属性值。h=gcf;%取得当前图形窗口的句柄取得当前图形窗口的句柄 get(h)%取得当前图形窗口的缺省属性值取
19、得当前图形窗口的缺省属性值结果如下所示:结果如下所示:Alphamap=(1 by 64)double arrayBackingStore=onCloseRequestFcn=closereq%关闭窗口时调用的回调函数关闭窗口时调用的回调函数Color=0.8 0.8 0.8%窗口的背景颜色窗口的背景颜色Colormap=(64 by 3)double arrayCurrentAxes=%当前坐标轴,为当前坐标轴,为(空)表示还未创建坐标轴(空)表示还未创建坐标轴CurrentCharacter=CurrentObject=CurrentPoint=0 0%鼠标当前的位置鼠标当前的位置2023
20、-5-5【例例】修改窗口的颜色为蓝色修改窗口的颜色为蓝色,去掉,去掉figure 1figure 1标识,并将窗标识,并将窗口的名称设置为口的名称设置为“my first figure”my first figure”。h=gcf;%取得当前图形窗口的句柄取得当前图形窗口的句柄 set(h,color,0 0 1);%修改其背景颜色为蓝色修改其背景颜色为蓝色 set(h,numbertitle,off);%去掉去掉figure的数字编号的数字编号 set(h,name,my first figure);%设置设置figure的名称的名称2023-5-5四、四、图形对象的操作图形对象的操作 每一
21、种类型的图形对象都有一个相应的每一种类型的图形对象都有一个相应的创建函数创建函数,这个,这个创建函数使用户能够创建这一类对象的一个实例。创建函数使用户能够创建这一类对象的一个实例。除了在除了在“绘图与可视化绘图与可视化”这一章中提到的二维绘图函数这一章中提到的二维绘图函数(如(如plotplot)、三维绘图函数(如)、三维绘图函数(如plot3plot3)和特殊绘图函数(如)和特殊绘图函数(如stemstem)等函数外,图形窗口对象、坐标轴、用户控件、用户)等函数外,图形窗口对象、坐标轴、用户控件、用户菜单、工具条和现场菜单创建函数以及对句柄的菜单、工具条和现场菜单创建函数以及对句柄的操作函数
22、操作函数列列于下表中于下表中。1、图形对象操作函数、图形对象操作函数2023-5-5函数名称函数名称功能描述功能描述figure创建图形窗口创建图形窗口axes创建坐标轴创建坐标轴line创建线条创建线条uicontrol创建用户界面控件创建用户界面控件uimenu创建用户界面菜单创建用户界面菜单uicontextmenu创建图形对象的右键弹出式菜单创建图形对象的右键弹出式菜单uitoolbar创建在图形窗口顶部显示的工具条创建在图形窗口顶部显示的工具条uipushtool在工具条上创建下压按钮在工具条上创建下压按钮uitoggletool在工具条上创建开关按钮在工具条上创建开关按钮uipan
23、el在图形窗口上创建面板对象在图形窗口上创建面板对象uibuttongroup在图形窗口上创建按钮组对象在图形窗口上创建按钮组对象2023-5-5set设置对象的属性设置对象的属性get获取对象的属性获取对象的属性findobj根据对象的属性值查找对象的句柄根据对象的属性值查找对象的句柄delete删除对象删除对象gco获取当前鼠标所点击的对象的句柄获取当前鼠标所点击的对象的句柄gcbo获取当前回调函数对应的对象的句柄获取当前回调函数对应的对象的句柄gcf获取当前图形窗口对象的句柄获取当前图形窗口对象的句柄gca获取当前坐标轴对象的句柄获取当前坐标轴对象的句柄clf清空当前图形窗口上的对象清空
24、当前图形窗口上的对象cla清除当前坐标轴上的对象清除当前坐标轴上的对象close关闭当前窗口关闭当前窗口Copyobj拷贝图形对象拷贝图形对象2023-5-5 gco、gcbo、gcf和和gca是是get函数的助记符,其含义如下:函数的助记符,其含义如下:(1)gco回当前图形窗口对象的回当前图形窗口对象的CurrentObject属性值,相当于属性值,相当于get(gcf,CurrentObject);(2)gcbo返回根对象的返回根对象的CallbackObject属性值,相当于属性值,相当于get(0,CallbackObject);(3)gcf返回根对象的返回根对象的CurrentFi
25、gure属性值,相当于属性值,相当于get(0,CurrentFigure);(4)gca返回当前图形窗口对象的返回当前图形窗口对象的CurrentAxes属性值,相当于属性值,相当于get(gcf,CurrentAxes)2、常用助记符、常用助记符3、常用操作函数:、常用操作函数:set和和get 在在MATLABMATLAB中,有两个基本命令用来处理图形对象:中,有两个基本命令用来处理图形对象:getget和和setset。通过使用这两个命令,可以。通过使用这两个命令,可以设置和修改指定对象的属性值。设置和修改指定对象的属性值。2023-5-5【例例】利用利用setset和和getget来
展开阅读全文