第六章句柄图形和用户图形界面设计_第1页
第六章句柄图形和用户图形界面设计_第2页
第六章句柄图形和用户图形界面设计_第3页
第六章句柄图形和用户图形界面设计_第4页
第六章句柄图形和用户图形界面设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第六章

句柄图形和用户图形界面设计教学目标介绍MATLAB的句柄图形和GUI开发环境、开发实例学习要求理解用户图形界面程序的构造,掌握编程方法2024/4/1216.1可视化界面环境图形用户界面是包含图形对象,如:窗口、图标、菜单、按钮和文本的用户界面。以某种方式选择或激活这些对象,通常引起动作或发生变化。最常见的激活方法是用鼠标或其它点设备去控制屏幕上的鼠标指针的运动。按下鼠标按钮,标志着对象的选择或其它动作。2024/4/122进入:新建文件命令窗口键入GUIDE5个工具界面编辑面板对象对齐工具对象属性编辑器对象浏览器菜单编辑器2024/4/1232024/4/1246.1.1设计工作区(TheLayoutEditor)2024/4/1256.1.2属性设计器(PropertiesInspector)2024/4/126属性设计器一、控件风格和外观(1)BackgroundColor:设置控件背景颜色,使用[RGB]或颜色定义。(2)CData:在控件上显示的真彩色图像,使用矩阵表示。(3)ForegroundColor:文本颜色。(4)String属性:控件上的文本,以及列表框和弹出菜单的选项。(5)Visible:控件是否可见。2024/4/127属性设计器二、对象的常规信息(1)Enable属性:表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选。(2)Style:控件对象类型。(3)Tag:控件表示(用户定义)。(4)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。(5)UserData:用户指定数据。(6)Position:控件对象的尺寸和位置。(7)Units:设置控件的位置及大小的单位(8)有关字体的属性,如FontAngle,FontName等。2024/4/128属性设计器三、控件回调函数的执行(1)BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)。(2)ButtonDownFcn属性:按钮按下时的处理函数。(3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。(4)CreateFcn:在对象产生过程中执行的回调函数。(5)DeleteFcn:删除对象过程中执行的回调函数。(6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。2024/4/129属性设计器四、控件当前状态信息(1)ListboxTop:在列表框中显示的最顶层的字符串的索引。(2)Max:最大值。(3)Min:最小值。(4)Value:控件的当前值。2024/4/12106.1.3对象浏览器(ObjectBrowser)2024/4/12116.1.4菜单编辑器(MenuEditor)菜单编辑器提供了两种菜单类型的编辑功能:下拉式菜单(MenuBar)弹出式菜单(ContextMenu)2024/4/1212 6.1.5M文件编辑器通过选择M-,可以打开相应.fig文件的.m文件源程序。 6.1.6其它工具

alignobjectsGridsandRulersTheTabOrderEditor2024/4/1213公用对话框文件文件选择对话框uigetfile颜色选择对话框uisetcolor字体选择对话框uisetfont页面设置对话框pagedlg警告与错误信息对话框warndlgerrordlg简单帮助信息对话框helpdlg2024/4/12146.2MATLAB图形界面基本控件 界面设计与控件是密不可分的,MATLAB提供了一些基本控件,如静态文本,编辑控件,列表框等。是独立的小部件,也是一个窗口,承担与用户的交互工作。 下面介绍常用的基本控件

2024/4/12151.静态文本(StaticText)2.编辑框(EditText)控件3.列表框(Listbox)控件4.滚动条(Slider)控件5.按钮(PushButton)控件6.切换按钮(ToggleButton)控件7.单选按钮(RadioButton)控件8.方框(Frame)控件9.检取框(CheckBox)控件 10.弹出式菜单(PopupMenu)控件11.坐标轴(Axes)控件2024/4/12161.静态文本(StaticText) 用于显示字符串,不接受输入信息,一般显示标题2.编辑框(EditText)控件

最常用的控件,可用于单行和多行文本的输入,功能强大。3.列表框(Listbox)控件

显示一个文字列表,用户可以选择其中一项和多项。以一行的形式显示。4.滚动条(Slider)控件

2024/4/12175.按钮(PushButton)控件 最常用的控件,用于响应用户的鼠标按键操作。6.切换按钮(ToggleButton)控件

切换按钮有两个状态,压下和弹起。7.单选按钮(RadioButton)控件 多个选项,使用时只选择一个。8. 检取框(CheckBox)控件 多个选项,使用时一次可多选。9.弹出式菜单(PopupMenu)控件

2024/4/12186.3句柄图形 MATLAB提供了一组用于创建及操作线、面、文字和像等基本图形对象的低级函数,这组命令可以对各图形对象进行更为细致的修饰和控制,低级函数不仅可以产生更为复杂的图形,而且为动态图形提供了基础。这个系统称为句柄图形系统。2024/4/1219 高层绘图函数——是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的。充分体现了MATLAB语言的实用性。

在高层绘图中对图形对象的描述一般是缺省的或由高层绘图函数自动设置的,因此对用户来说几乎是不透明的。 底层绘图函数——可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。充分体现了MATLAB语言的开发性2024/4/12206.3.1句柄图形的层次关系根对象Rootscreen图形窗口对象figures坐标轴Axes界面控件菜单右键菜单文字线对象表面图图像光源三维块矩形块右键菜单2024/4/1221句柄图形:利用底层绘图函数,通过对对象属性的设置(HandleGraphics)与操作实现绘图。句柄图形中所有图形操作都是针对图形对象而言的。句柄图形充分体现了面向对象的程序设计。2024/4/1222句柄图形的特点句柄图形可以随意改变MATLAB生成图形的方式。句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动,还是影响所有图形输出的整体改动。句柄图形的特性高层绘图函数是无法实现的2024/4/1223创建图形对象的底层函数figure

创建图形窗口调用格式:h=figure(n)n为窗口序号uicontrol

图形界面控制调用格式:h=uicontrol(‘property’,value)property/value确定控制类型2024/4/1224uimenu

创建用户界面菜单调用格式:

h=uimenu(‘property’,value)property/value确定菜单形式。axes

创建轴对象

h=axes(‘property’,)

定义轴对象的位置与大小

left,bottom

width,height2024/4/1225line

创建线对象

h=line(x,y,z)patch创建块对象

h=patch(x,y,z,c)x,y,z定义多边形,c确定填充颜色。surface创建面对象

h=surface(x,y,z,c)x,y,z三维曲面坐标,c颜色矩阵。

二维画线

三维画线2024/4/1226image

显示图象

h=image(x);x为图像矩阵text

标注文字

h=text(x,y,’string’)

每个底层函数只能创建一个图形对象,并将它们置于适当的父辈对象中。但句柄绘图中上述图形对象都是用户需要经常使用的,所以要作到心中有数,用句柄设置图形对象的属性。确定标注位置标注字符串2024/4/12276.3.2图形窗口对象的属性 所有图形窗口都有决定其如何表现的属性,一类是共性:包括类型、可视、剪辑及中断允许等。另一类是特性:针对某一对象独有的如定义“面”的数据,“轴”的刻度等。属性可以在界面编辑面板的Tools\PropertyInspector菜单项设置。 图形窗口对象本身是一个窗口,具有一般窗口对象的共同属性。其常用属性如下:Color、MenuBar、Name、NumberTitle、Unites、Position、Resize。2024/4/12281.Color属性图形背景颜色。RGB:[000]黑色,[111]白色2.MenuBar属性是否在图形窗口的顶部显示图形菜单栏。None缺省设置3.Name属性窗口标题4.NumberTitle属性在图形窗口中是否加上图形编号。5.Units属性像素Pixels、英寸inches、厘米Centimeters6.Position属性设置图形显示的大小的位置。2024/4/12297.Resize属性能否改变窗口的大小。8.各种回调函数Callback:在对象被选中时执行的回调函数;ButtonDownFcn:按下界面上按钮所执行的函数;KeyPressFcn:在键盘按下时执行的函数;WindowButtonDownFcn:在图形是窗口中移动鼠标时调用的函数。2024/4/12306.3.3句柄与句柄获取什么是句柄?句柄(handle)是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。各图形对象的句柄数据格式:

根屏幕0

图形窗口整数,表示图形窗口数其它对象对应的符点数2024/4/1231所有能创建图形对象的MATLAB函数都可给出所创建图形对象的句柄例:创建1号窗口,返回句柄

h=figure(1)h=1返回值为窗口号数例:h=line(1:6,1:6)创建线对象的同时也建立了一个唯一的句柄变量h是句柄值——浮点数2024/4/1232图形对象属性的获得与设置 要设置图形对象属性值,首先要知道该对象的句柄,基本方法有以下几种。

从图形创建指令获取 追溯法获取句柄 当前对象句柄的获取 根据对象特性获取句柄 根据对象”浑名“(tag)获取2024/4/1233 1.从图形创建句柄 所有高层或底层指令都能从图形创建时获取句柄。 H_gc=graphicCcommand 2.追溯法获取句柄 若一个对象的句柄为H_know,那么可用如下格式获取其父或其子对象句柄H_pa=get(H_know,’parent’)H_ch=get(H_know,’children’) 3.当前对象句柄的获取Gcf:当前窗口对象的句柄Gca:当前轴对象的句柄Geo:获取“被鼠标最近点击”的图形对象句柄2024/4/12344.根据对象特性获取句柄利用对象特性搜索对象句柄可以得到较高的搜索速度H=findobj(H_ori,”PN”,”PV”)在H_ori制定对象上,寻找与属性对(”PN”,”PV”)匹配的对象句柄5.根据“浑名”(tag)获取可以通过“tag”属性,给对象一个“浑名”,然后可以通过“浑名”获取该对象的句柄设置“浑名”的两个方法创建时赋名:plot(x,y,“Tag”,‘A4’)用set完成:h=plot(x,y) set(h,“Tag”,‘A4’)2024/4/1235操作格式:h=gcf将当前窗口对象的句柄返回hget(h)或get(gcf)查阅当前窗口对象的属性delete(gcf)删除当前窗口的属性例:h=line(x,y)get(h)2024/4/1236例:创建一个线对象并返回线对象的句柄值

h1=line([0:10],[0:10])h1=57.0001h1为句柄的代码值2024/4/1237查阅线对象的属性名称和属性值get(h1)

Color=[110] EraseMode=normal LineStyle=- LineWidth=[0.5] MarkerSize=[6] Xdata=[(1by11)] Ydata=[(1by11)] Zdata=[] 2024/4/1238ButtonDownFcn=

Children=[]

Clipping=on

Interruptible=no

Parent=[56.0001]

Type=line

UserData=[]

Visible=on根据轴是线对象的父代,可查轴的句柄

get(gca)2024/4/1239可查色序get(gca,'colororder')ans=1101010111000100012024/4/1240set:改变图形对象的属性设置线条和窗口的颜色set(h1,'color',[100])set(h1,'color',[10.50])2024/4/1241set(gcf,'color',[0.50.50.5])set(gcf,'color',[0.50.60.8])2024/4/1242例:作正弦、余弦曲线,将正弦曲线改为虚线,将余弦曲线幅度减为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:')2024/4/1243首先查询各对象的属性get(gcf)···h=get(gcf,'children')h=60.0004hh=get(gca,'children')hh=70.000469.000468.00042024/4/1244y11=get(hh(2),'ydata');y22=y11/2;set(hh(2),'ydata',y22)set(hh(3),'linestyle',':')2024/4/12456.4对象的属性操作※控制一个图形对象是通过句柄实现的,具体是通过句柄操作函数get,set将某对象句柄属性作设置与修改。对象属性的直接操作

对象属性的直接操作是通过当前句柄来实现的,所以首先要获得当前句柄值以及对象的属性,然后再查询或修改。2024/4/1246get(h)get(h,’propertyname’)set(h)set(h,’propertyname’,value)set(h,’属性名称’,‘新属性’)‘color’,’r’‘linestyle’,’:’‘figurecolor’,’m’2024/4/12472.对象属性的继承操作对象属性的继承操作是通过父代对象,设置缺省对象属性来实现的。父代句柄属性中设置缺省值后,所有子代对象均可以继承该属性的缺省值。属性缺省值的描述结构为:

Dfault+对象名称+对象属性2024/4/1248如:DefaultF

温馨提示

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

评论

0/150

提交评论