63

Click here to load reader

第九章 图形句柄和 GUI 图形设计

  • Upload
    sorcha

  • View
    125

  • Download
    5

Embed Size (px)

DESCRIPTION

第九章 图形句柄和 GUI 图形设计. 句柄图形对象的基本知识 图形框架窗口对象的基本内容 图形对象属性的获取和设置 图形对象的操作 GUI 的基本知识 GUI 对象的创建方法 GUI 的编程方法 GUI 的 M 文件 GUI 控件的使用. 一、 句柄图形对象. 图形框架窗口对象 (Figure) 图形对象属性的获取和设置 图形对象的操作. ( 1 ) 图形框架窗口对象 (Figure). 绘制图形的图形框架窗口对象 核心 (Core) 对象 绘图 (Plot ) 对象 注释对象. 窗口对象. - PowerPoint PPT Presentation

Citation preview

Page 1: 第九章  图形句柄和 GUI 图形设计

第九章 图形句柄和 GUI 图形设计 句柄图形对象的基本知识图形框架窗口对象的基本内容图形对象属性的获取和设置图形对象的操作GUI 的基本知识GUI 对象的创建方法GUI 的编程方法GUI 的 M 文件GUI 控件的使用

Page 2: 第九章  图形句柄和 GUI 图形设计

一、 句柄图形对象 图形框架窗口对象 (Figure) 图形对象属性的获取和设置 图形对象的操作

Page 3: 第九章  图形句柄和 GUI 图形设计

( 1 ) 图形框架窗口对象 (Figure)

绘制图形的图形框架窗口对象 核心 (Core) 对象 绘图 (Plot ) 对象 注释对象

Page 4: 第九章  图形句柄和 GUI 图形设计

窗口对象 图形框架窗口对象是 MATLAB 显示图形的窗口,包括菜单、工具栏、 交互式对象、弹出式菜单、坐标、坐标轴子对象以及其他的图形对象。 MATLAB 对一次打开的图形数目没有限制(用户的计算机系统可能会做出限制)。 在 MATLAB 中,图形框架窗口对象有两个特殊的作用:

1. 包含数据图形;2. 包含图形用户界面操作 GUI 。

Page 5: 第九章  图形句柄和 GUI 图形设计

绘制图形的图形框架窗口对象 MATLAB 语言中实现句柄访问的函数 函 数 名 功 能 描 述

gca 获得当前坐标轴对象的句柄gcbf 获得当前正在执行调用的图形对象的句柄gcbo 获得当前正在执行调用的对象的句柄gcf 获得当前图形对象的句柄gco 获得当前对象的句柄

Page 6: 第九章  图形句柄和 GUI 图形设计

核心 (Core) 对象 核心对象包括直线、文本和特殊对象 ( 如光、图像和面图 ) 等基本的绘图命令;而坐标系对象包括线、面图和等高线图等描述数据的对象。

Page 7: 第九章  图形句柄和 GUI 图形设计

MATLAB 语言中创建核心对象的函数 函 数 名 功 能 描 述

axes 坐标轴image MATLAB 语言中的图像light 光源line 二维图形中最基本的图形对象

patch 按指定方式填充的多边形rectangle 具有可设置边界和表面颜色的二维图形对象surface 图形表面

text 图形中的文本

Page 8: 第九章  图形句柄和 GUI 图形设计

核心 (Core) 对象举例[x,y] = meshgrid([-2:.4:2]);Z = x.*exp(-x.^2-y.^2);fh = figure('Position',[350 275 600 450],'Color','g');ah = axes('Color','w','XTick',[-2 -1 0 1 2],... 'YTick',[-2 -1 0 1 2]);sh = surface('XData',x,'YData',y,'ZData',Z,... 'FaceColor','w',... 'EdgeColor','r','Marker','o',... 'MarkerFaceColor','b');view(3)

Page 9: 第九章  图形句柄和 GUI 图形设计

绘图 (Plot ) 对象 MATLAB 提供了一系列的高级绘图函数来创建绘图对象,这些绘图对象的属性具有重要的意义,使用它们可以很方便地访问绘图对象所包含的核心对象的重要属性。

Page 10: 第九章  图形句柄和 GUI 图形设计

绘图 (Plot ) 对象举例[x,y,z] = peaks;[c,h] = contour(x,y,z);set(h,'LineWidth',3,'LineStyle',':')

Page 11: 第九章  图形句柄和 GUI 图形设计

注释对象 用户一般习惯于使用图形编辑工具栏或是 Insert菜单来创建注释对象,同时,用户也可以使用注释函数来创建注释对象。 注释对象在一个隐藏的坐标轴下创建,该坐标轴延伸到图形整个长度和宽度,这样,用户可以使法向坐标系 ( 以图形的左下点为 (0 , 0) ,右上点为 (1 , 1)) 在图形的任意部位定义图例注释。

Page 12: 第九章  图形句柄和 GUI 图形设计

( 2 ) 图形对象属性的获取和设置 get 函数 set 函数 对象属性的缺省设置和查询 属性查询和设置示例

Page 13: 第九章  图形句柄和 GUI 图形设计

get 函数 在 MATLAB 中,使用 get 函数可以得到对象的属性及其属性值,其通常的调用格式为 :

get(H) 获取 H 句柄对象所有属性的当前值;

get(H,PN)获取 H 句柄对象由 PN 所指定属性的当前值

Page 14: 第九章  图形句柄和 GUI 图形设计

set 函数 在 MATLAB 中,使用 set 函数可以设置对象的属性值,其通常的调用格式如下。

set(H,'PropertyName',PropertyValue) 命令设置 PropertyName 的属性为 PropertyValue 。set(H,a) 命令中, a 为结构型变量,字段名为图形对象的属性名,字段值为映像的属性值。set(H,'PropertyName1',PropertyValue1,'PropertyName2',PropertyValue2,...) 命令同时设置多个属性的值。

Page 15: 第九章  图形句柄和 GUI 图形设计

对象属性的缺省设置和查询 MATLAB 在建立对象时把默认属性赋给各对象。如果想不采用这些默认值,就必须使用句柄图形工具对它们进行设置。当每次都要改变同一属性时, MATLAB 允许设置用户自己的默认属性。 MATLAB 让用户改变对象层次结构中任意一点上的单个对象或对象类型的默认属性。

Page 16: 第九章  图形句柄和 GUI 图形设计

get(H,’DefaultObjectTypeObjectProperty’)获取缺省值set(H,’ DefaultObjectTypeObjectProperty’,PropertyValue)设置“用户定义”缺省值;set(H,’ DefaultObjectTypeObjectProperty’,’remove’)删除“用户定义”缺省值

Page 17: 第九章  图形句柄和 GUI 图形设计

属性查询和设置示例创建二维图形时,分别用元胞数组和构架数组设置对象属性。clf reset,x=0:pi/12:2*pi;

PN1={'Color', 'LineWidth','Marker'};

PV1={[1 0 0], 5 , 'd'};

plot(sin(x),cos(x),PN1,PV1)

axis square off

PS.Color='g';PS.LineWidth=2;

line(sin(7*x),cos(7*x),PS);

Page 18: 第九章  图形句柄和 GUI 图形设计

例: axes 轴位框设计、 rectangle 的运用、及轴外注释。所谓轴外注释,实际上是使用了两个轴位框。一个轴位框充满全部图形窗,其坐标框被隐去,而只写注释文字。而另一个比较小的轴位框用于绘图。这样从外表看去,注释就处于那小轴位框的外部。(参见lesson_handlse)

Page 19: 第九章  图形句柄和 GUI 图形设计

( 3 ) 图形对象的操作 查找对象 堆积次序

Page 20: 第九章  图形句柄和 GUI 图形设计

查找对象 句柄图形提供了对图形对象的访问途径,并且允许用函数 get 和 set 定制图形。 如果用户忘记保存句柄或图形对象的句柄,或者当变量被覆盖时,如果要改变对象的属性,就必须进行对象句柄的查找。 MATLAB 提供了查找对象的函数 gcf 、 gca 、 gco 和 findobj 等 。

Page 21: 第九章  图形句柄和 GUI 图形设计

堆积次序 堆积次序决定哪一对象叠加在其他对象上。开始时,堆积次序在对象被创建时就被决定,最后创建的对象在堆栈的顶部。 当前的堆积次序是由一个给定的对象 Children句柄出现的次序给出的。

Page 22: 第九章  图形句柄和 GUI 图形设计

影响 line 或 plot 画线时线型和色彩的“父”对象设置。( 1 ) t=(0:pi/50:2*pi)';k=0.4:0.1:1;Y=cos(t)*k;

line(t,Y,'Color',[1 0 0],'LineStyle','-.')

( 2 ) clf reset

set(gca,'ColorOrder',[0 0 0;0.7 0.7 0.7],'LineStyle','-|:')

line(t,Y)

( 3 ) clf reset

set(gcf,'DefaultAxesLineStyleOrder','-|:');

set(gcf,'DefaultAxesColorOrder',[1 0 0;0 0 1]);

line(t,Y)

Page 23: 第九章  图形句柄和 GUI 图形设计

二、 GUI 编程 对于传递函数为

121

2

ssG

的归一化二阶系统,制作一个能绘制该系统单位阶跃响应的图形用户界面。(参见 Lesson9_1 )

Page 24: 第九章  图形句柄和 GUI 图形设计

图形用户界面的设计原则和一般步骤设计原则( 1 )简单性设计界面时,应力求简洁、直接、清晰地体现出界面的功能和特性。( 2 )一致性1.读者自己开发的界面风格要尽量一致;2.新设计的界面要与其他已有的界面风格不要截然相左。( 3 )习常性设计新界面时,应尽量使用人们所熟悉的标志和符号。( 4 )其它考虑因素

Page 25: 第九章  图形句柄和 GUI 图形设计

一般制作步骤 分析界面所要求实现的主要功能,明确设计任务; 在稿纸上绘出界面草图,并站在使用者的角度来审查草图; 按构思的草图,上机制作(静态)界面,并检查之; 编写界面动态功能的程序,对功能进行逐项检查。

Page 26: 第九章  图形句柄和 GUI 图形设计

界面菜单图形窗的标准菜单标准菜单受界面菜单‘MenuBar’ 属性管理。该属性有两个取值 [none|{figure}] 。当属性值取‘ none’ 时,图形窗不显现标准菜单(及工具条);当属性值取‘ figure’ 时,图形窗显现标准菜单。例:隐藏和恢复标准菜单的显示。( 1 )获得缺省设置的标准菜单 H_fig=figure( 2 )隐去标准菜单的两种方法set(H_fig , 'MenuBar','none')set(gcf,'menubar',menubar);( 3 )恢复图形窗上标准菜set(gcf,'menubar','figure');

Page 27: 第九章  图形句柄和 GUI 图形设计

自制的用户菜单自制用户菜单指令典型调用格式:Hm=uimenu(‘H_parent’,’PropertyName’,’PropertyValue’,…);说明:Hm 为该用户菜单的句柄。 H_parent 为其父对象的句柄。该父对象只能是图形窗对象,或另一用户菜单对象。如果 H_parent输入参数缺省,那么菜单项将建立在当前图形窗的顶层菜单条上。‘PropertyName’ 和’ PropertyValue’ 构成属性二元对,即(属性名,属性值)。他们定义用户菜单的属性。

Page 28: 第九章  图形句柄和 GUI 图形设计

如何自制一个带下拉菜单表的用户菜单。该菜单能使图形窗背景颜色设置为兰色或红色。figure

h_menu=uimenu(gcf,'label','Color');

h_submenu1=uimenu(h_menu,'label','Blue',...

'callback','set(gcf,''Color'',''blue'')');

h_submenu2=uimenu(h_menu,'label','Red',...

'callback','set(gcf,''Color'',''red'')');

Page 29: 第九章  图形句柄和 GUI 图形设计

用户菜单的属性回调属性和菜单名( 1 )菜单名属性属性‘ Label’ 用来命名用户菜单项的名称,它的属性值一定是字符串。该字符串应选择得简短扼要反映相应操作得本质。

Page 30: 第九章  图形句柄和 GUI 图形设计

( 2 )回调属性回调函数属性的取值也是字符串。该字符串可以包含任何MATLAB 的合法命令和 M 文件名。当用户选用该菜单时,回调的作用是:将那属性值字符串送给 eval去执行,以实现该菜单的功能。如果用户不对自制菜单项的回调属性值进行设置,那么该菜单项的回调属性值是“空串”,因而当用户选择该菜单项时,将没有任何反映。

Page 31: 第九章  图形句柄和 GUI 图形设计

例:在图形窗上自制一个名为【 Test】的“顶层菜单项”;当用鼠标点动该菜单项时,将产生一个带分格的封闭坐标轴。( 1 )在 MATLAB 指令窗中运行以下程序可产生带分隔的封闭坐标轴。grid on,set(gca,'box','on')( 2 )在 MATLAB 指令窗中用以下 eval 指令可产生带分隔的界面。eval('grid on,set(gca,''box'',''on'')')( 3 )直接连续表示法 uimenu('Label','Test','Callback','grid on,set(gca,''box'',''on''),')

Page 32: 第九章  图形句柄和 GUI 图形设计

( 4 )方括号续行号表示法 uimenu('Label','Test', ...'Callback',['grid on,' , ...'set(gca,''box'',''on'');'])( 5 )串变量法Lpv='Test';Cpv=['grid on,','set(gca,''box'',''on''),'];uimenu('Label', Lpv, 'Callback' , Cpv)( 6 )构架表示法PS.Label='Test';PS.Callback=['grid on;','set(gca,''box'',''on'');'];uimenu(PS)

Page 33: 第九章  图形句柄和 GUI 图形设计

简捷键的制作方法:如果想为某菜单项制作简捷键( Shortcut key ),只要使’ Label’ 的属性值字符串包含 &X 便可。在此的 X代表用户喜欢的任何字母。简捷键的提示方法:被设置简捷键的那菜单名中将出现字符 X 。简捷键的操作方式:只有在相应菜单项可见时,简捷键操作( ALT+

X )才起作用。

设置简捷键或快捷键

Page 34: 第九章  图形句柄和 GUI 图形设计

快捷键的制作方法:某菜单项快捷键( Accelerator key ) 的制作,必须依赖用户菜单 uimenu 的‘ Accelerator’ 属性,属性值可以取任何字母。快捷键的提示方式:被设置快捷键的那菜单名后将出现( Ctrl+ Y )。快捷键的操作方式:当相应菜单项不可见时,快捷键操作才起作用。简捷键主要用于顶层菜单项;快捷键主要用于(自身不再带子菜单的)子菜单项。

Page 35: 第九章  图形句柄和 GUI 图形设计

例:设计 Color 菜单项及其下拉的 Blue 菜单各带一个简捷键,,而另一项下拉菜单 Red 带一个快捷键。figureh_menu=uimenu(gcf,'Label','&Color'); h_submenu1=uimenu(h_menu,'Label','&Blue',...'Callback','set(gcf,''color'',''blue'')');h_submenu2=uimenu(h_menu,'label','Red',...'Callback','set(gcf,''color'',''red'')',...'Accelerator','r');

Page 36: 第九章  图形句柄和 GUI 图形设计

用户菜单的外观设计用户菜单的外观主要取决于四个属性:位置’ Position’ 、分隔线‘ Separator’ 、检录符‘ Checked’ 、前景颜色‘ ForgroundColor’ 。‘Position’ 的属性值总是正整数 1,2,3 等。顶层菜单项的位置按自左至右次序,子菜单按自上而下次序,分别编序为 1,2,3 等。与其他图像对象一样,该属性的取值和设置可通过 get,set 指令实现。‘Seperator’ 属性有两个取值 [on|{off}] 。假如某菜单项的该属性被设置成‘ on’ ,那么在生成界面中,将出现一个分隔线使该菜单项与其上方的菜单隔开。

Page 37: 第九章  图形句柄和 GUI 图形设计

‘ForgroundColor’ 是用来设置菜单名文字颜色的,其属性值可取任何合法的单色代表符或 RGB三元组。检录属性’ Checked’ 有两个取值可能 [on|{off}] 。缺省时,取值‘ off’ ,不显现检录符。当取值设置为‘ on’ 时,一旦那菜单项被选,其前就出现“√”标记。例:设计用户菜单‘ Option’ 设置为顶层的第三菜单项;下拉菜单被两条分隔线分为 3 个菜单区;最下菜单项又有两个子菜单组成。(参见 Lesson9_option1 )例:当某菜单项选中后,如何使该菜单项贴上检录符“√”。(参见 Lesson9_option2 )

Page 38: 第九章  图形句柄和 GUI 图形设计

使能( Enable )与可见性( Visible )属性用户菜单项可以通过使能属性或可见属性的取‘ off’ 值,而暂时失能。即该菜单项无法连续被选,除非它因其他菜单项被选而重新激活。例:制作一个带 4 个子菜单项的顶层菜单项;该下拉菜单分为两个功能区;每个功能区的两个菜单项是相互对立的,因此采用使能属性处理;当图形窗坐标轴消隐时,整个坐标分隔控制功能区不可见。(参见 Lesson9_option_axis )

Page 39: 第九章  图形句柄和 GUI 图形设计

现场菜单的制作步骤:利用指令 uicontextmenu 创建现场菜单对象;利用指令 uimenu 为这现场菜单制作具体的菜单项。利用指令 set将此现场菜单和某图形对象联系在一起。

例:绘制一条 Sa 曲线,创建一个与之相联系的现场菜单,用以控制 Sa 曲线的颜色。(参见 Lesson9_sa )

Page 40: 第九章  图形句柄和 GUI 图形设计

用户控件Hc=uicontrol(H_parent,’PN’,pv,…)说明:

Hc 为待制作用户控件的句柄。 H_parent 为其父对象句柄;当该句柄缺省时, MATLAB将在当前图形界面上添加用户控件。‘PN’ , pv 为(属性名,属性值)二元对。它用来定义用户控件的属性(如类型,回调等)。象其他图形对象一样,这属性二元对,也可以用构架数组、元胞数组替代。

Page 41: 第九章  图形句柄和 GUI 图形设计

例:双位按键、无线电按键、控件区域框示例(参见 Lesson9_control1)例:静态文本框、滑动键、检录框示例(参见 Lesson9_control2,callcheck )例:可编辑框、弹出框、列表框、按键示例(参见 Lesson9_control3,calledit )利用递归法编写用户界面函数文件(参见 Lesson9_M)

Page 42: 第九章  图形句柄和 GUI 图形设计

启动 GUI 用户欲启动 GUI 操作,可以在命令窗口中输入 guid

e 命令。

Page 43: 第九章  图形句柄和 GUI 图形设计

布局 (Layout) 编辑器 当用户在 GUIDE 中打开一个 GUI 时,该 GUI将显示在 Layout 编辑器中, Layout 编辑器是所有 G

UIDE 工具的控制面板。

Page 44: 第九章  图形句柄和 GUI 图形设计

布局 (Layout) 编辑器 用户可以使用鼠标拖动模板左边的控件 ( 按钮、坐标轴、单选按钮等 ) 到中间的布局区域 。

Page 45: 第九章  图形句柄和 GUI 图形设计

GUIDE模板介绍 GUIDE Quick Start 对话框提供了几种常用的 GUI模板 。

Page 46: 第九章  图形句柄和 GUI 图形设计

运行 GUI 单击工具栏最右边的绿色按钮,即运行当前的 GU

I 窗口。

Page 47: 第九章  图形句柄和 GUI 图形设计

创建 GUI 对象 GUI 窗口的布局

1. 改变 GUI 窗口的大小 2. 控件的添加和对齐

GUI 控件的属性控制 1. 属性查看器的显示 2. 一些常用的属性

菜单的添加 1. 主菜单的创建 2. 弹出式菜单的的创建

Page 48: 第九章  图形句柄和 GUI 图形设计

( 1 ) GUI 窗口的布局 改变 GUI 窗口的大小

在布局编辑器中可以很方便地改变 GUI 中网格区域的大小,只需单击网格区域的右下角,当鼠标变为箭头形式时,拖动鼠标,即可适时改变窗口的大小 。

Page 49: 第九章  图形句柄和 GUI 图形设计

( 2 ) GUI 控件的属性控制 属性查看器的显示

用户可以使用如下 3种方式打开:1. 在布局窗口中双击某个控件。2. 在 View 菜单中选择 Prop

erty Inspector选项。3. 右击某个控件并从弹出的快捷菜单中选择 Inspect P

roperties选项。

Page 50: 第九章  图形句柄和 GUI 图形设计

( 3 )主菜单的创建 1 菜单属性的设置 单击右图中的菜单标题 Untitled 1 ,将在菜单编辑器的右边显示该菜单的属性提供给用户进行编辑,如

Label 、 Tag 、 Accelerator 、 Separator 和Checked 等属性。

Page 51: 第九章  图形句柄和 GUI 图形设计

( 3 )主菜单的创建 2

给菜单增添菜单项用户可以使用工具栏上的 New Menu Item 图标给当前菜单增添菜单项 。

Page 52: 第九章  图形句柄和 GUI 图形设计

与句柄结构共享数据 当运行 GUI 时, M 文件创建一个包含所有 GUI对象(如控件、菜单和坐标轴)的句柄结构,句柄结构作为一个每个响应的输入来处理。用户使用句柄结构可以实现如下操作。

1. 在各响应之间实现数据共享;2. 访问 GUI 数据。

Page 53: 第九章  图形句柄和 GUI 图形设计

在各响应之间实现数据共享 用户欲取得变量 X 的数据,可以先将句柄结构的一个域设为 X ,然后在使用 guidata 函数保存该句柄结构,如下所示:handles.current_data = X;guidata(hObject,handles)

用户可以在其他任何响应中重新得到该变量的值,使用的操作如下。X = handles.current_data;

Page 54: 第九章  图形句柄和 GUI 图形设计

访问 GUI 数据 用户可以利用句柄结构获取 GUI 控件的任意数据

用户要想使用 GUI 中的另一个控件 (比如一个按钮 ) 来在当前所选的菜单项实现某个操作,那么用户可以在该按钮的响应插入如下命令。all_choices = get(handles.my_menu, 'String')current_choice = all_choices{get(handles.my_me

nu, 'Value')}

Page 55: 第九章  图形句柄和 GUI 图形设计

( 2 ) M 文件中的函数和响应 用户可以给 GUI 的 M 文件的如下部分增加程序代码:

1. 打开函数( Opening function ),该函数在 GUI 可见之前实施操作。

2. 输出函数( Output function ),在必要的时候向命令行输出数据。3. 响应( Callbacks ),在用户激活 GUI 中的相应控件时实施操作。

Page 56: 第九章  图形句柄和 GUI 图形设计

打开函数 打开函数包含有在 GUI 可见之前进行操作的代码,用户可以在打开函数中访问 GUI 的所有控件,因为所有 DUI 中的对象都在调用打开函数之前就已经创建。 如果用户需要在访问 GUI之前实现某些操作 ( 如创建数据或图形 ) ,那么可以通过在打开函数中增添代码来加以实现。

对于一个文件名为 my_gui 的 GUI 来说,它的打开函数的定义语句如下。function my_gui_OpeningFcn(hObject, eventdata, handles, varargin)

Page 57: 第九章  图形句柄和 GUI 图形设计

输出函数 输出函数将输出结果返回给命令行。这一点在用户需要将某个变量传递给另一个 GUI 时尤其实用。

UIDE 在输出函数中生成如下代码。% --- Outputs from this function are returned

to the command line.function varargout = my_gui_OutputFcn(hOb

ject, eventdata, handles)% Get default command line output from han

dles structurevarargout{1} = handles.output;

Page 58: 第九章  图形句柄和 GUI 图形设计

( 3 )控件的使用 “ 开关”按钮 (Toggle Button) 的响应 按钮 (Radio Buttons) 的响应 “复选框”控件 (Check Boxes) 的响应 “ 文本框”控件 (Edit Text) 的响应 “滚动条”控件 (Sliders) 的响应 “ 列表框”控件 (List Boxes) 的响应 “ 弹出菜单”控件 (Pop-Up Menus) 的响应 控件板 (Panels) 的响应

Page 59: 第九章  图形句柄和 GUI 图形设计

控件的使用举例 1 按钮 (Radio Buttons) 的响应

在图形界面中添加该控件之后,该控件将在指定位置添加按钮,按钮的标识字符由属性 String 控制,而返回值由 Value 值控制。在 GUI 的 M 文件中使用如下形式的代码来编制 Radio 按钮的响应程序:if (get(hObject,'Value') == get(hObject,'Max')) % then rsdio button is selected-take approriate actionelse % radio button is not selected-take approriate actionend

Page 60: 第九章  图形句柄和 GUI 图形设计

控件的使用举例 2 “复选框”控件 (Check Boxes) 的响应 在图形界面中添加该控件之后,该控件将提供复选功能,将显示文本字符串及选择框 。在 GUI 的 M 文件中使用如下形式的代码来编制“复选框”控件的响应程序 :

function checkbox1_Callback(hObject, eventdata, handles)

if (get(hObject,'Value') == get(hObject,'Max')) % then checkbox is checked-take approriate actionelse % checkbox is not checked-take approriate actionend

Page 61: 第九章  图形句柄和 GUI 图形设计

控件的使用举例 3

“ 文本框”控件 (Edit Text) 的响应 在图形界面中添加该控件之后,该控件的属性相当于其他语言设计中的文本框属性,允许用户动态地编辑或是输入文本字符串。如果需要获取用户在文本框中输入的字符串,可以在响应程序中输入如下代码:function edittext1_Callback(hObject, eventdata, handle

s)user_string = get(hObject,'string');% proceed with callback..

Page 62: 第九章  图形句柄和 GUI 图形设计

使用句柄结构进行 GUI 数据操作 GUIDE 提供了一种机制来存储和检索共享的数据,这些操作都通过包含有 GUI 控件句柄的相同结构来实现,这种机制就称为句柄结构。句柄结构包含有 GUI 的所有控件的句柄,它在 M 文件中被传递给每一个响应。因此,该响应对保存任意共享数据十分有用。

Page 63: 第九章  图形句柄和 GUI 图形设计

练习题制作一个图形用户界面。要求:

1 )通过编辑框输入 后,可自动绘出相应的椭圆 ;2 )通过按“ grid on” 按钮,可画出坐标网格,按“ grid off” 按钮,取消坐标网格 ;

画椭圆采用模型 12525 2

2

2

2

a

ya

x1 、