UI和图形组件具有一定的属性,你可以与特定的回调函数关联。每个这些属性的对应于特定的用户动作。例如,uicontrol有一个叫做财产打回来
。您可以设置该属性的值是一个处理一个回调函数,匿名函数,或含有MATLAB字符矢量®表达。设置此属性使您的应用程序响应时与uicontrol用户交互。如果打回来
财产没有指定的值,则什么也不会发生用户交互时与uicontrol。
该表列出了使用它们的回调特性可用,触发回调函数的用户操作,而最常见的用户界面和图形组件。
回调属性 |
用户操作 |
组件使用此属性 |
---|---|---|
ButtonDownFcn |
而指针是组件或图形上最终用户按下一个鼠标按钮。 |
|
打回来 |
端用户触发组件。例如:选择一个菜单项时,移动滑块,或按下一个按钮。 |
|
CellEditCallback |
端用户编辑在一个表,其细胞是可编辑的值。 |
|
CellSelectionCallback |
终端用户选择的细胞中的表。 |
|
ClickedCallback |
终端用户点击推工具或肘节工具与鼠标左键。 |
|
CloseRequestFcn |
图中关闭。 |
|
CreateFcn |
回调执行时MATLAB创建对象,但其显示之前。 |
|
DeleteFcn |
回调执行MATLAB删除人物之前。 |
|
KeyPressFcn |
当鼠标指针在对象上最终用户按下键盘键。 |
|
|
当鼠标指针在对象上端用户释放键盘键。 |
|
OffCallback |
执行时, |
|
OnCallback |
执行时, |
|
|
端用户调整按钮组,图形,或面板,其 |
|
SelectionChangedFcn |
端用户选择一个按钮组内的不同的单选按钮或切换按钮。 |
|
WindowButtonDownFcn |
当鼠标指针在图中窗口端用户按下一个鼠标按钮。 |
|
WindowButtonMotionFcn |
端用户移动该图窗口内的指针。 |
|
WindowButtonUpFcn |
端用户释放鼠标按钮。 |
|
WindowKeyPressFcn |
当鼠标指针图上或任何其子对象的最终用户按下某个键。 |
|
WindowKeyReleaseFcn |
当鼠标指针图上或任何其子对象的最终用户释放的关键。 |
|
|
端用户转动鼠标滚轮时指针位于图。 |
为回调函数用的UI组件相关联,设置组件的回调特性中的一个的值是给回调函数的参考。通常情况下,你这样做,当你定义组件,但你可以在你的代码的任何更改回调属性值。
指定的下列方式之一回调属性值:
指定的单元阵列。该单元阵列包含一个函数句柄作为第一要素,其次是你要在函数中使用任何输入参数。
函数处理提供了一种方式来表示一个功能作为一个变量。该功能必须在同一个文件中的应用程序代码在本地或嵌套函数,或者你可以在一个单独的文件,它是MATLAB路径写在上面。
要创建函数句柄,指定@
该功能的名称前操作。例如,这uicontrol
命令所指定的打回来
财产是一个句柄功能pushbutton_callback
:
B = uicontrol('样式',“按钮”,'打回来',@ pushbutton_callback);
下面是函数的定义pushbutton_callback
:
功能pushbutton_callback(SRC,事件)显示器(“按下按钮”);结束
回调属性名称 | 零件 |
---|---|
WindowKeyPressFcn WindowKeyReleaseFcn WindowScrollWheel |
数字 |
KeyPressFcn |
数字 ,uicontrol ,uitable |
KeyReleaseFcn |
数字 ,uicontrol ,uitable |
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表达式,可以包括函数参数的。例如:
HB = uicontrol('样式',“按钮”,...'串','情节主线',...'打回来','情节(兰特(20,3))');
'情节(兰特(20,3))'
,是一个有效的命令,并且当用户点击按钮MATLAB计算它。如果字符向量包括可变,例如,'曲线(X)'
X
当用户触发回调,或者返回一个错误的基地工作区必须存在。变量并不需要在一次分配回调属性值存在,但是当用户触发回调它必须存在。
不同于被指定为功能手柄或电池阵列的回调,MATLAB确实不检查特征向量的语法错误或丢失的依赖关系。如果用MATLAB表达出了问题,直到用户触发回调仍未被发现。