主要内容

为图形对象创建回调

什么是回调?

一个回调是一个命令执行一些预定义的用户操作,比如点击一个图形对象或关闭窗口。你可以计划一个响应通过编写一个特定用户的行动回调函数处理动作,然后分配函数回调的财产与该用户相关的行动。例如,您可以创建一个ButtonDownFcn回调的图程序响应用户单击图。

这个主题包含的例子写回调等图形对象,,或对象。回调函数的列表关联到一个特定的图形对象,看到该对象的属性。例如,对于一个列表回调,看到图的属性

信息写回调在一个应用程序UI组件,明白了为应用程序创建回调以编程方式创建

创建基本回调

图形回调函数必须接受至少两个输入参数:

  • 的图形对象回调执行——在你的回调函数中使用这个论点来指代对象。

  • 事件数据结构——使用这个论点在你的回调函数来访问用户操作的信息是特定于回调对象和属性。这个结构是空了许多图形对象回调。

每当一个回调执行在响应用户操作,MATLAB®调用回调函数,并将这两个参数传递给函数。

创建一个回调,首先定义一个回调函数所需的输入参数。然后,分配一个句柄函数相关的回调属性。

定义回调函数

例如,创建一个新文件命名figureCallback.m并定义一个回调函数命名figureCallback。回调函数处理行动当用户按下一个键图窗口。定义回调函数接受两个输入参数:

  • src——使用第一个参数指的是特定的图是谁的回调执行查找对象图的绘制。

  • 事件——使用第二个参数来访问特定的信息按用户操作的关键。如果按下的键+,增加线的宽度,如果它是- - - - - -减少线的宽度。

函数figureCallback (src、事件)= findobj (src,“类型”,“行”);如果事件。特点= =“+”线。行Width = line.LineWidth+1;elseif事件。特点= =“-”线。行Width = max(line.LineWidth-1,0.5);结束结束

指定回调函数回调

在命令窗口中,创建一个对象。使用@运营商分配函数句柄WindowKeyPressFcn属性的图。这个回调执行当用户按图中一个关键的窗口。然后,绘制一些数据在当前图。

图(WindowKeyPressFcn = f = @figureCallback);情节(1:10)

运行代码和新闻+。线宽增加。

请注意

基于回调的数据目前不支持编辑器。金宝app有关更多信息,请参见图的属性

创建额外的输入参数的回调

您可以创建一个回调使用一个额外的输入参数匿名函数。首先,定义一个回调函数和任意数量的输入参数。然后,相关的回调属性值指定为一个匿名函数,它接受所需的源和MATLAB传给回调事件参数,然后调用回调函数与相应的输入。

请注意

创建一个回调,目前一个匿名函数不支持现场的数据编辑器。金宝app

定义回调函数

例如,定义一个回调函数,改变了标记边缘颜色然后显示x- - -y坐标在命令窗口当用户点击一个标记。创建一个新文件命名displayCoordinates.m并定义一个回调函数命名displayCoordinates。定义回调函数接受三个输入参数:

  • src——使用第一个参数引用的特定图形对象回调执行。

  • ~——指定~字符为第二个参数表明,函数不使用回调事件数据。

  • 斧头——使用第三个参数访问轴上的鼠标指针的位置。

函数displayCoordinates src (src, ~, ax)。MarkerEdgeColor =兰德(1、3);disp (ax.CurrentPoint (1:2))结束

指定回调函数回调

在命令窗口中,情节一些数据在一个坐标轴对象使用散射函数。指定ButtonDownFcn回调的散射使用一个匿名函数对象。匿名函数接受源和事件参数的回调,然后调用MATLAB传球displayCoordinates函数所需的输入。

ax =轴;x = randn (100 1);y = randn (100 1);散射(x, y,“ButtonDownFcn”@ (src、事件)displayCoordinates (src,事件,ax))

运行代码并点击一个标记。标记边缘颜色变化,x- - -y坐标显示在命令窗口。

有关更多信息,请参见匿名函数

虽然匿名函数提供最大的灵活性,指定回调函数输入参数超出了输入源和事件,在某些情况下另一种方法是使用一个单元阵列来指定一个回调。如果你的回调函数接受输入源和事件之后,其他参数,您可以通过指定单元阵列分配回调。数组的第一个元素的细胞是回调函数处理,和任何额外的元素是传递给函数的输入源和事件之后。

例如,您可以指定ButtonDownFcn回调的散射对象使用一个单元阵列。数组的第一个元素是一个句柄displayCoordinates函数,第二个元素是轴传递到对象displayCoordinates函数在源和事件参数。

ax =轴;x = randn (100 1);y = randn (100 1);散射(x, y,“ButtonDownFcn”,{@displayCoordinates, ax})

创建默认回调

当你调用绘图函数,如情节酒吧,MATLAB创建新图形对象和重置大多数图和轴属性。因此,回调函数定义为特定的图形对象可能被MATLAB。而不是创建一个回调执行所有特定类型的对象,指定一个回调函数作为违约根水平。

定义回调函数

定义一个函数的名字customizeGrid在一个新文件命名customizeGrid.m。函数在一个坐标轴对象打开和定制它的网格线。

函数customizeGrid ax (ax)。XGrid =“上”;斧子。YGrid =“上”;斧子。GridLineStyle =“——”;斧子。GridAlpha = 0.5;结束

指定回调函数回调

执行customizeGrid每当MATLAB函数创建一个新的轴对象通过设置一个默认的轴CreateFcn回调的大的对象。把房地产作为一个匿名函数,两个需要回调输入,然后调用customizeGrid函数对象被创建。

集(大的,“defaultAxesCreateFcn”@ (src ~) customizeGrid (src))

创建多个轴图。他们每个人的定制的网格出现。

ax₁=轴(“位置”(0.1 - 0.1 0.8 - 0.35));ax2 =轴(“位置”(0.1 - 0.55 0.8 - 0.35));

有关更多信息,请参见默认的属性值

MATLAB的默认回调仍设置会话。为每一个MATLAB会话设置一个默认回调,添加默认的赋值startup.m文件。有关更多信息,请参见启动

相关的话题