文档

写回调应用程序编程创建

回调不同的用户操作

UI和图形组件具有一定的属性,你可以与特定的回调函数关联。每个这些属性的对应于特定的用户动作。例如,uicontrol有一个叫做财产打回来。您可以设置该属性的值是一个处理一个回调函数,匿名函数,或含有MATLAB字符矢量®表达。设置此属性使您的应用程序响应时与uicontrol用户交互。如果打回来财产没有指定的值,则什么也不会发生用户交互时与uicontrol。

该表列出了使用它们的回调特性可用,触发回调函数的用户操作,而最常见的用户界面和图形组件。

回调属性

用户操作

组件使用此属性

ButtonDownFcn

而指针是组件或图形上最终用户按下一个鼠标按钮。

数字uibuttongroupuicontroluipaneluitable

打回来

端用户触发组件。例如:选择一个菜单项时,移动滑块,或按下一个按钮。

uicontextmenuuicontroluimenu

CellEditCallback

端用户编辑在一个表,其细胞是可编辑的值。

uitable

CellSelectionCallback

终端用户选择的细胞中的表。

uitable

ClickedCallback

终端用户点击推工具或肘节工具与鼠标左键。

uitoggletooluipushtool

CloseRequestFcn

图中关闭。

数字

CreateFcn

回调执行时MATLAB创建对象,但其显示之前。

数字uibuttongroupuicontextmenuuicontroluimenuuipushtooluipaneluitableuitoggletooluitoolbar

DeleteFcn

回调执行MATLAB删除人物之前。

数字uibuttongroupuicontextmenuuicontroluimenuuipushtooluipaneluitableuitoggletooluitoolbar

KeyPressFcn

当鼠标指针在对象上最终用户按下键盘键。

数字uicontroluipaneluipushtooluitableuitoolbar

KeyReleaseFcn

当鼠标指针在对象上端用户释放键盘键。

数字uicontroluitable

OffCallback

执行时,的切换工具变为“关”

uitoggletool

OnCallback

执行时,的切换工具变为'上'

uitoggletool

SizeChangedFcn

端用户调整按钮组,图形,或面板,其调整大小属性'上'

数字uipaneluibuttongroup

SelectionChangedFcn

端用户选择一个按钮组内的不同的单选按钮或切换按钮。

uibuttongroup

WindowButtonDownFcn

当鼠标指针在图中窗口端用户按下一个鼠标按钮。

数字

WindowButtonMotionFcn

端用户移动该图窗口内的指针。

数字

WindowButtonUpFcn

端用户释放鼠标按钮。

数字

WindowKeyPressFcn

当鼠标指针图上或任何其子对象的最终用户按下某个键。

数字

WindowKeyReleaseFcn

当鼠标指针图上或任何其子对象的最终用户释放的关键。

数字

WindowScrollWheelFcn

端用户转动鼠标滚轮时指针位于图。

数字

如何指定回调属性值

为回调函数用的UI组件相关联,设置组件的回调特性中的一个的值是给回调函数的参考。通常情况下,你这样做,当你定义组件,但你可以在你的代码的任何更改回调属性值。

指定的下列方式之一回调属性值:

指定一个功能处理

函数处理提供了一种方式来表示一个功能作为一个变量。该功能必须在同一个文件中的应用程序代码在本地或嵌套函数,或者你可以在一个单独的文件,它是MATLAB路径写在上面。

要创建函数句柄,指定@该功能的名称前操作。例如,这uicontrol命令所指定的打回来财产是一个句柄功能pushbutton_callback

B = uicontrol('样式'“按钮”'打回来',@ pushbutton_callback);

下面是函数的定义pushbutton_callback

功能pushbutton_callback(SRC,事件)显示器(“按下按钮”);结束
注意,函数句柄不明确提及任何输入参数,但函数的声明包括两个输入参数。这两个输入参数都需要你指定一个函数处理所有回调。MATLAB时自动通过这些参数回调执行。第一个参数是触发回调的UI组件。第二个参数提供事件数据到回调函数。如果有可用的回调函数没有事件数据,然后MATLAB通过第二输入参数为空数组。下表列出了回调和组件使用的事件数据。

回调属性名称 零件
WindowKeyPressFcn
WindowKeyReleaseFcn
WindowScrollWheel
数字
KeyPressFcn 数字uicontroluitable
KeyReleaseFcn 数字uicontroluitable
SelectionChangedFcn uibuttongroup
CellEditCallback
CellSelectionCallback
uitable

指定的回调函数处理的一个好处是,MATLAB检查语法错误的功能,当你将回调到组件缺少的依赖关系。如果在回调函数中的一个问题,那么MATLAB返回错误立即,而不是等待用户触发回调。此行为有助于你的用户遇到他们之前找到代码中的问题。

指定的单元阵列

使用电池阵列指定接受要在功能使用额外的输入参数的回调函数。在单元阵列中的第一个元素是一个功能句柄。所述单元阵列中的其他元素是要附加输入参数使用,用逗号分开。您指定的描述必须定义相同的两个输入参数的函数指定一个功能处理。但是,您可以前两个参数确定后,在你的函数声明额外的输入。

这个uicontrol命令创建了一个按钮,并指定打回来属性是一个单元阵列。在这种情况下,该功能的名称是pushbutton_callback,和附加输入参数的值是

B = uicontrol('样式'“按钮”'打回来'{@ pushbutton_callback,5});

下面是函数的定义pushbutton_callback

功能pushbutton_callback(SRC,事件,x)的显示(X);结束

就像指定函数处理回调,MATLAB检查回调指定为语法错误,当你指定回调到组件缺少的依赖电池阵列。如果在回调函数中的一个问题,那么MATLAB返回错误立即,而不是等待用户触发回调。此行为有助于你的用户遇到他们之前找到代码中的问题。

指定一个匿名函数

当你想要一个UI组件执行不支持所需要的功能,手柄和电池阵列的两个参数的函数指定一个匿名函数。万博1manbetx例如,这uicontrol命令创建了一个按钮,并指定打回来财产是一个匿名函数。在这种情况下,函数的名称是myfun和它的函数声明只定义了一个输入参数,X

B = uicontrol('样式'“按钮”'打回来',@(SRC,事件)myfun(X));

指定一个字符载体的MATLAB命令(不推荐)

当您要执行一些简单的命令,你可以指定一个字符向量,但如果它包含超过几个命令的回调可能变得难以管理。您指定的特征向量必须由有效的MATLAB表达式,可以包括函数参数的。例如:

HB = uicontrol('样式'“按钮”...'串''情节主线'...'打回来''情节(兰特(20,3))');
该特征向量,'情节(兰特(20,3))',是一个有效的命令,并且当用户点击按钮MATLAB计算它。如果字符向量包括可变,例如,
'曲线(X)'
变量X当用户触发回调,或者返回一个错误的基地工作区必须存在。变量并不需要在一次分配回调属性值存在,但是当用户触发回调它必须存在。

不同于被指定为功能手柄或电池阵列的回调,MATLAB确实检查特征向量的语法错误或丢失的依赖关系。如果用MATLAB表达出了问题,直到用户触发回调仍未被发现。

相关话题

是这个主题有帮助吗?