49
中中中中 中中中中中中中中中 中中中 第 5 第 第第第第第第第第

第 5 章 图形用户界面编程

  • Upload
    sveta

  • View
    86

  • Download
    0

Embed Size (px)

DESCRIPTION

第 5 章 图形用户界面编程. 图形用户界面. 所谓用户界面就是用户与计算机交互通信联系的平台。 图形用户界面是指包含图形对象的用户界面, MATLAB 包含两类基本的图形对象:控件对象和菜单对象。 MATLAB 提供了 “ 布局编辑器 ” 和 “ 菜单编辑器 ” 等工具设计图形用户界面。. 5.1 布局编辑器. MATLAB 窗口的 File 菜单下选 New 下的 GUI, 或在 MATLAB 命令窗口输入 guide 。. 工具条:排列、菜单编辑、 M 文件编辑器、属性观察器、对象浏览器和图形激活钮。. 布局区域. 图形对象. GUI 制作:需求分析. 要点: - PowerPoint PPT Presentation

Citation preview

Page 1: 第 5 章 图形用户界面编程

中南大学 信息科学与工程学院 任胜兵

第 5 章 图形用户界面编程

Page 2: 第 5 章 图形用户界面编程

图形用户界面

所谓用户界面就是用户与计算机交互通信联系的平台。

图形用户界面是指包含图形对象的用户界面,MATLAB 包含两类基本的图形对象:控件对象和菜单对象。

MATLAB 提供了“布局编辑器”和“菜单编辑器”等工具设计图形用户界面。

Page 3: 第 5 章 图形用户界面编程

5.1 布局编辑器

MATLAB 窗口的 File 菜单下选 New 下的 GUI, 或在 MATLAB 命令窗口输入 guide 。

图形对象

工具条:排列、菜单编辑、M 文件编辑器、属性观察器、对象浏览器和图形激活钮。

布局区域

Page 4: 第 5 章 图形用户界面编程

GUI 制作:需求分析

要点: 1 )确定需要实现哪些功能; 2 )确定数据输入 / 输出方式; 3 )确定所需的窗口图形元素; 4 )绘制 GUI 草图; 5 )征求用户或他人的意见,并进行修改。

Page 5: 第 5 章 图形用户界面编程

GUI 制作:绘制并测试 GUI

要点: 1 )在计算机上实现需求分析绘制的草图,并

依据实际情况进行调整; 2 )从用户使用的角度对 GUI 进行调试。

注:在完成设计与测试之前,不要编码,因为此时编写的代码可能会因设计的更改而失去意义。

在 GUI 测试稳定后编写并测试代码。

Page 6: 第 5 章 图形用户界面编程

GUI 设计原则

简单性 简洁、直接、清晰地体现出界面的功能和特征。 风格一致性 例如:图形窗口在左,图形控件在右等。 易理解性 尽量使用人们熟悉的标志和符号,界面中的动

作必须做到及时、连续、可逆,对连续时间长的运算要给出等待时间提示,并允许用户中断等。

Page 7: 第 5 章 图形用户界面编程

5.2 控件对象

选择

命令钮

单选钮

文本框

滚动条

列表框

坐标轴

开关钮

复选框

标签

框架

弹出式菜单

Page 8: 第 5 章 图形用户界面编程

控件对象属性 : 外观及风格控制 BackgrandColor: 设置控件的

背景色,可以是 RGB 颜色值,如 [1 1 0] ,也可以是短名颜色值,如‘ y’ ,还可以是长名颜色值,如‘ yellow’ ;

Cdata: 设置显示在控件上图象的颜色值; 1 行 3 列。(效果不理想)

ForegroundColor: 设置控件上显示文本的颜色;

SelectHighlight: 用于确定空间被选中时是否显示被选中的状态(取值 :on 、 off ) ;

String: 用于设置控件上显示的文本串;

Visible: 设置控件的可见状态。

Page 9: 第 5 章 图形用户界面编程

控件对象属性 : 基本信息属性

Enable: 可用状态 on; 暂停不用状态 inactive; 不可用状态 :off ; Parent: 控件对象的父对象句柄所在图形窗口对象句柄; Selected: 用于确定控件是否被选中; Sliderstep: 用于设置滚动条每次移动的步长; Style: 用于决定所创建控件的类型; Tag:相当于控件对象的名称,在程序设计时可用来指定控件; TooltipString: 设置简单提示信息; UserData:保存与控件对象有关的信息或数据,可通过 set 和 get函数来调用这些信息。

Page 10: 第 5 章 图形用户界面编程

控件对象属性 : 字体控制属性

FontAngle: 用于确定字体的倾斜; FontName: 设置字体的名称; FontSize: 设置字体的大小; FontUnits: 确定字体大小的单位; FontWeight: 定义字体的粗细; HorizontalAlignment: 定义字符对齐方式。

Page 11: 第 5 章 图形用户界面编程

控件对象属性 : 回调例程控制 ButtonDownFcn: 定义当鼠标在控件对象上按下时执行的回调例程,

可以是字符串、 MATLAB 表达式或 M 文件的文件名; Callback: 定义单击控件时执行的回调例程; CreateFcn: 定义在控件对象创建阶段执行的回调例程; DeleteFcn: 定义在控件对象删除阶段执行的回调例程; BusyAction:决定回调例程的调用方式,取值有 cancel 与 queue,

与 Interruptible 联合使用; Interruptible:决定回调例程的中断调用模式 , 如为 on则新的回调例

程中断当前正在执行的回调例程,如为 off则由 BusyAction决定调用模式;

UIContextMenu:建立与上下文菜单( context menu )对象的联系,其属性的取值为菜单对象句柄。

Page 12: 第 5 章 图形用户界面编程

控件对象属性 : 当前状态信息属性

ListboxTop: 用于显示在列表框最上头的字符串的索引号,默认值为 1 ;是 String 属性定义的字符串向量的某个元素的索引值。

Value:决定空间的当前值;对弹出式菜单控件 pop_up menus ,该属性为已选中的列表项的索引值。

Page 13: 第 5 章 图形用户界面编程

控件对象属性 : 当前状态信息属性 Max

Max: 定义 Value 属性允许的最大值。 在不同的控件类型中, Max有不同的意义: 复选框:选中时 Value 属性的值为 Max 的值; 文本框 :Max-Min>1则可进行多行输入; 列表框: Max-Min>1则可允许多个列表项选择; 单选钮:选中时 Value 属性的值为 Max 的值; 滚动条:定义了滚动条变化范围的最大值; 开关钮:选中时 Value 属性的值为 Max 的值。

Page 14: 第 5 章 图形用户界面编程

控件对象属性 : 当前状态信息属性 Min

Min: 定义了 Value 属性允许的最小值。 复选框:未选中时 Value 属性的值为 Min 的值; 单选钮:未选中时 Value 属性的值为 Min 的值; 滚动条:定义了滚动条变化范围的最小值; 开关钮:未选中时 Value 属性的值为 Min 的值。

Page 15: 第 5 章 图形用户界面编程

控件对象属性的操作方式和步骤

命令方式:利用 uicontrol建立控件对象时,定义控件属性的属性值;

利用 set 设置、修改属性的属性值; 利用 get获得属性的属性值。 GUI 方式:通过 Property Inspector GUI 设计工

具设置控件对象的属性值。 程序中控件对象的一般操作步骤: 1 )获取对象

句柄; 2) 对对象属性进行操作。

Page 16: 第 5 章 图形用户界面编程

MATLAB 句柄图形

句柄图形: MATLAB 每幅图的每个组成部分是一个对象,每个对象有一个句柄与其相联。

MATLAB 句柄图体系如下:Root(根屏幕 )

Figure( 图 )

Uicontrol( 界面控制 )

Axes( 坐标系 ) Uimenu( 界面菜单 )

UicontextMenu( 上下文菜单 )

Line

(线 )

Surface

( 面 )

Rectangle

( 方 )

Patch

(贴片 )

Image

( 图象 )

Text

( 文本 )

Light

(光 )

Page 17: 第 5 章 图形用户界面编程

图形句柄

在 MATLAB 中,每个图形对象都由一个数字来表识,称为句柄,用来唯一确定图形对象。

计算机屏幕:根对象( Root ),句柄为 0 ; 图形窗口:句柄为整数; 其它:句柄为浮点值。

Page 18: 第 5 章 图形用户界面编程

图形对象句柄的获取

每个对象在创建时可以返回该对象的句柄。例如: h=plot(0:.1:2*pi,sin(0:.1:2*pi));利用标准对象句柄获取函数获取: gcf:获取当前图形窗口的句柄; gca:获取当前坐标轴的句柄; gco:获取当前图形的当前对象的句柄; gcbf/gcba/gcbo:获取回调例程图形窗口 / 坐

标轴 /当前对象的句柄。

Page 19: 第 5 章 图形用户界面编程

图形对象句柄的获取 findobj

h=findobj(‘Propertyname’,propertyValue,…) :获得指定属性 Propertyname 的属性值为 propertyValue 对应对象的句柄。

h=findobj(objHandle,‘Propertyname’,propertyValue,…) :同上,但将查找范围限制在 objHandle 指定的对象及其子对象中。

h=findobj(objHandle,’flat’,‘Propertyname’,propertyValue,…) :同上,但将查找范围不包括子对象。

h=findobj:返回一个列向量,是根对象及其所有子对象的句柄值。

Page 20: 第 5 章 图形用户界面编程

图形对象句柄的获取举例

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

h=findobj('Tag','axes1');

x=-pi:0.1:pi;

y=sin(x);

plot(x,y,'Parent',h);% --- Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

h=findobj('Tag','axes2');

x=-pi:0.1:pi;

y=cos(x);

plot(x,y,'Parent',h);

Page 21: 第 5 章 图形用户界面编程

对象及属性的操作 : 删除和拷贝

delete(handle):删除句柄 handle 对应对象及其子对象;

c=copyobj(h,p): 复制对象句柄, c 为新得到的句柄。如果 h 和 p均为向量,则将 h 对应的句柄分别作为 p各对应对象的子对象的句柄;如果h 为向量, p 为标量,则将 h 对应的句柄作为 p对应对象的子对象的句柄;如果 h 为标量, p为向量,则将 h 对应的句柄分别作为 p 对应对象的子对象的句柄。

Page 22: 第 5 章 图形用户界面编程

对象及属性的操作 copyobj 举例

mesh(peaks(30));

text(30,20,2,'\leftarrow peak');

h=findobj('String','\leftarrow peak');

figure

mesh(peaks(20));

ha=copyobj(h,gca);

Page 23: 第 5 章 图形用户界面编程

对象及属性的操作 : 创建、设置和获取

h=uicontrol(parent,’PropertyName’,propertyValue,…) 缺省 parent 表示在当前图形窗口创建控件对象。

set(handle ,’PropertyName’,propertyValue,…) 用来设置句柄为 handle 的控件对象的属性值。

get(handle, ’PropertyName’) 返回句柄为 handle 的对象中名为 PropertyName 的属性的属性值。

Page 24: 第 5 章 图形用户界面编程

对象及属性的操作举例x=0:.1:2*pi;

y=sin(x);

h_sin=plot(x,y,'*');

lineWidth=get(h_sin,'LineWidth');

set(h_sin,'Color',[1 0.5 0],'LineWidth',lineWidth+4);

hpop=uicontrol('Style','popup','String','Black|Green|Blue|Red',...

'Position',[340 190 100 150],'Callback','setmap',...

'Tag','popup');

setmap.m 文件中的内容:

hp=findobj('Tag','popup');

val=get(hp,'Value');

if val==1

set(gca,'Color',[0,0,0]);

elseif val==2

set(gca,'Color',[0 1 0]);

elseif val==3

set(gca,'Color',[0 0 1]);

elseif val==4

set(gca,'Color',[1 0 0]);

end

Page 25: 第 5 章 图形用户界面编程

5.3 菜单对象和上下文菜单

在 MATLAB 中有两类菜单:下拉式菜单 uimenu和上下文菜单 uicontextmenu 。

下拉式菜单(菜单对象)的位置是固定的。 上下文菜单的位置是不固定的,且总与某个图形

对象相联系,通过鼠标右键激活,同时下拉式菜单可为其中的菜单项。

Page 26: 第 5 章 图形用户界面编程

菜单对象的创建 hm=uimenu(h,’PropertyName’,value,…) 以 h 为父对象的句柄创建一个菜单对象,并返回该菜单的句柄。例如:

h0=figure('MenuBar','none','Toolbar','none','Name','Draw Graph');

h1=uimenu(h0,'Label','&Draw');

h11=uimenu(h1,'Label','&Membrane','Accelerator','M','Callback','Membrane');

h12=uimenu(h1,'Label','&Peaks','Accelerator','P','Callback','Peaks');

h13=uimenu(h1,'Label','&Sphere','Accelerator','S','Callback','Sphere');

h2=uimenu(h0,'Label','&Color');

h21=uimenu(h2,'Label','&Hot','Accelerator','H','Callback','Colormap(hot)');

h22=uimenu(h2,'Label','&Cool','Accelerator','C','Callback','Colormap(cool)');

h23=uimenu(h2,'Label','c&Opper','Accelerator','O','Callback','Colormap(copper)');

h24=uimenu(h2,'Label','RGB','Separator','on');

h241=uimenu(h24,'Label','&Red','Callback','set(h241,''Checked'',''on'');');

h242=uimenu(h24,'Label','&Green','Callback','set(h242,''Checked'',''on'');');

h243=uimenu(h24,'Label','&Blue','Callback','set(h243,''Checked'',''on'');');

‘‘Checked’’

Page 27: 第 5 章 图形用户界面编程

上下文菜单创建

h=uicontextmenu(‘PropertyName’,propertyValue,…)

一般步骤: 1 )利用 uincontextmenu创建上下文菜单对象; 2 )利用 uimenu 制作菜单项; 3 )利用 set将上下文菜单与具体的图形对象联

系起来。

Page 28: 第 5 章 图形用户界面编程

上下文菜单创建举例

cmenu=uicontextmenu;

hline=plot(1:10,'UIContextMenu',cmenu);

item1=uimenu(cmenu,'Label','dashed',...

'Callback','set(hline,''LineStyle'',''--'')');

item2=uimenu(cmenu,'Label','dotted',...

'Callback','set(hline,''LineStyle'','':'')');

item1=uimenu(cmenu,'Label','Solid',...

'Callback','set(hline,''LineStyle'',''-'')');

Page 29: 第 5 章 图形用户界面编程

利用菜单编辑器制作菜单

Page 30: 第 5 章 图形用户界面编程

菜单属性

在菜单编辑器的右边有少量有关菜单属性值的设置。

Checked: 对选中的菜单打标记(对顶层菜单无用); Label: 设置菜单标题; Separator: 用于在菜单上设置分隔条; Visible: 设置菜单的可见状态; Accelerator: 用于设置菜单加速键; Callback: 定义单击菜单对象时执行的回调例程; Tag: 标记菜单项的名称,便于在程序设计时通过该名称指定菜单项。

Page 31: 第 5 章 图形用户界面编程

5.4 对话框

在 GUI 程序设计中,对话框是最重要的显示信息和取得用户数据的用户界面对象。

MATLAB 的对话框分为两类:公共对话框和一般对话框。 公共对话框:文件打开对话框、文件保存对话框、颜

色设置对话框、字体设置对话框、打印页面对话框、打印预览对话框和打印对话框。

一般对话框:帮助对话框、出错信息对话框、信息提示对话框等。

Page 32: 第 5 章 图形用户界面编程

文件打开对话框 [fname,pname]=uigetfile(‘FilterSpec’,’DialogTitle’,x,y) 获取待打开

文件的文件名 fname 及路径信息 pname 。 FilterSpec 指定文件类型; DialogTitle 指定对话框标题名; x,y 指定对话框位置信息。

uigetfile 并未打开有关文件。 MATLAB 提供了基于 C语言实现的低级文件 I/O函数。

>> [fn,pn]=uigetfile('*.m','Open M File',10,10);

>> fn

fn =

sample1.m

>> pn

pn =

C:\MATLAB6p5\work\

Page 33: 第 5 章 图形用户界面编程

打开、关闭文件

[fid,errormessage]=fopen(filename,permission);

使用 permission 指定的模式打开 filename 指定的文件,成功时返回文件标识,否则返回系统错误信息 errormessage.

permission 的取值及含义:‘ r’:只读模式;‘ w’ :写模式(含创建);’ a’:添加;‘ r+’:读写;‘ w+’:读写(含创建);‘ a+’ :添加(含创建)。

status=fclose(fid): 关闭 fid 指定的文件,操作成功时返回 0 ,否则返回 1 。

Page 34: 第 5 章 图形用户界面编程

无格式输入 / 输出

[a,count]=fread(fid,size,precision,skip): 从指定文件 fid 中读取 size个单位长度为 precision 的数据元素至 a 中, skip 表示每次读后跳过的字节数。 count 表示实际读入的数据个数。

size 取值含义:标量 n (读取 n个元素); inf(读到文件结尾 ) ; [m,n] (读取 m*n个元素)。

precision: ‘uchar’ ( 8位无符号字符—缺省值);‘ schar’(8位带符号字符 ) ;‘ int8’(8位带符号整数 ) ;‘ uint8’(8位无符号整数 ) ;‘ single’(32位浮点数 ) ;‘ double’ ( 64位浮点数)。

count=fwrite(fid,a,precision,skip):将 a 中数据转换成 precision 指定的数据元素写入 fid 指定的文件中, count 为成功写入的元素数目。

Page 35: 第 5 章 图形用户界面编程

格式化输入 / 输出

count=fprintf(fid,format,a,…):将 a 中数据用 format 格式化后写入文件 fid 中, count 为写入的字节数。 fid缺省表示向显示屏输出。例如:

x=0:.2:2; y=[x;2*exp(x)]; fid=fopen('data.txt','w'); fprintf(fid,'%6.2f %12.8f\n',y); fclose(fid); [a,count]=fscanf(fid,format,size): 从 fid 指定文件中读取 size

指定的数据,并根据 format 指定的格式对其转换后返回 a ,count 为读取的元素数目。

Page 36: 第 5 章 图形用户界面编程

按行从文件读数据

line=fgetl(fid) :从文件 fid 中读 1 行数据至 line ,返回的行不包括换行符。遇到文件结尾则返回 -1 。

line=fgets(fid) :从文件 fid 中读 1 行数据至 line ,返回的行包括换行符。遇到文件结尾则返回 -1 。

Page 37: 第 5 章 图形用户界面编程

文件测试

eofstat=feof(fid): 文件结尾返回 -1 ,否则返回 0 。 frewind(fid):将文件位置指针反绕到文件开头。 status=fseek(fid,offset,origin):将文件的位置指针定位

到 origin偏移 offset 指定的位置。 Origin 的取值为 ‘bof’ 或 -1 文件开始 ‘cof’ 或 0 文件当前位置 ‘eof’ 或 1 文件结束 position=ftell(fid):返回位置指针指向的位置,失败时返回 -1 。

Page 38: 第 5 章 图形用户界面编程

文件保存对话框

[fname,pname]=uinputfile(‘Initfile’,’DialogTitle’,x,y): Initfile 为指定待保存文件类型, DialogTitle 为对话框标题,x 和 y 为对话框位置。

例如: >> uiputfile('*.m','Save')

ans =

kk

Page 39: 第 5 章 图形用户界面编程

颜色设置对话框

c=uisetcolor(h_or_c,’DialogTitle’): h_or_c 为初始颜色,可以是一个 1X3 的 RGB向量,也可以是一个图形对象的句柄(该图形对象必有一个颜色属性)。

>> c=uisetcolor([1 0 1],'Select Color')

c =

0.2510 0 0.2510

Page 40: 第 5 章 图形用户界面编程

字体设置对话框

s=uisetfont(h_or_s,’Dialog Title’ ): h_or_s 为初始字体属性,可以是一个对象的句柄,也可以是一个字体属性结构; s 为字体属性结构,包括 (FontName,FontUnits,FontSize,FontWeight,FontAngle 等域 ) 。

Text1 = uicontrol('style','text','string','XxYyZz');

Text2 = uicontrol('style','text','string','AxBbCc',...

'position', [200 20 60 20]);

s = uisetfont(Text1, 'Update Font');

if isstruct(s) % Check for cancel

set(Text2, s);

end

Page 41: 第 5 章 图形用户界面编程

帮助对话框 h=helpdlg(‘HelpString’,’dlgname’): HelpString 为帮助信

息; dlgname 为对话框标题。例如:

>> helpdlg('This is a dialogue!','Help')

Page 42: 第 5 章 图形用户界面编程

在线帮助窗口 helpwin( 补 )

>> str={'Topic 1','Help string for topic1‘;'Topic 2' 'Help string for topic2'};

>> helpwin(str,'Topic 2','My Title')

Page 43: 第 5 章 图形用户界面编程

信息提示对话框

h=msgbox(message,title,’icon’): icon 的取值为:‘ none’ ,’ error’ ,’ help’ 和‘ custom’,默认为‘ none’ 。

Data=1:64;Data=(Data'*Data)/64; h=msgbox('String','Title','custom',Data,hsv(64));

Page 44: 第 5 章 图形用户界面编程

5.5 GUI 编程

设计一个如下所示的 GUI,当单击“绘图”按钮时,将在坐标轴上绘制选择的图形。

Figure 的 Name 属性值为‘ GUI 例子程序’

坐标轴的 Tag 属性值为‘ axes1’

标签的 String 属性的值为‘图形选择’单选钮的 string 属性值为‘正弦曲线’, Tag 属性值为 sin单选钮的 string 属性值为‘余弦曲线’, Tag 属性值为 cos, Value 属性值为 1.0

命令钮的 string 属性值为‘绘图’,Tag 属性值为 draw

保存时文件名为 fgui

Page 45: 第 5 章 图形用户界面编程

fgui.m 程序说明 :gui_State

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @fgui_OpeningFcn, ...

'gui_OutputFcn', @fgui_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin & isstr(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

gui_Singleton 大于 0 表示只有一个实例化的图形窗口存在;

gui_Name 图形窗口对应文件名;

gui_OpeningFcn 窗口创建前执行的函数;

gui_OutputFcn 输出时执行的函数;

gui_Callback 确定控件的回调函数;

gui_mainfcn 调用分派函数。

Page 46: 第 5 章 图形用户界面编程

fgui.m 程序说明 : fgui_OpeningFcn

% --- Executes just before fgui is made visible.

function fgui_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to fgui (see VARARGIN)

% Choose default command line output for fgui

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes fgui wait for user response (see UIRESUME)

% uiwait(handles.figure1);

guidata:存储或检索应用数据。

Page 47: 第 5 章 图形用户界面编程

fgui.m 程序说明 : fgui_OutputFcn

% --- Outputs from this function are returned to the command line.

function varargout = fgui_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

Page 48: 第 5 章 图形用户界面编程

fgui.m 程序说明 :draw_Callback

% --- Executes on button press in draw.

function draw_Callback(hObject, eventdata, handles)

% hObject handle to draw (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

x=-pi:.1:pi;

if get(handles.sin,'Value')>0

plot(x,sin(x),'Parent',handles.axes1);

elseif get(handles.cos,'Value')>0

plot(x,cos(x),'Parent',handles.axes1);

end

用户输入程序

Page 49: 第 5 章 图形用户界面编程

fgui.m 程序说明 :sin_Callback

% --- Executes on button press in sin.

function sin_Callback(hObject, eventdata, handles)

% hObject handle to sin (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of sin

set(handles.cos,‘Value’,get(handles.cos,‘Min’)); % 设置 cos 单选钮为补选中状态

Cos_Callback 与此类似