文档

图形回调的类方法

引用方法

要使用普通类方法作为图形对象的回调,请将回调属性指定为引用该方法的函数句柄。例如,

uicontrol(“风格”、“滑块”、“回调”,@obj.sliderCallback

你的类定义了一个叫做sliderCallbackobj是类的实例。

要使用静态方法作为回调,请将callback属性指定为函数句柄,其中包含引用静态方法所需的类名:

uicontrol(“风格”、“滑块”、“回调”,@MyClass.sliderCallback

方法回调的语法

对于普通方法,使用点表示法传递定义回调的类的实例作为第一个参数:

@obj.methodName

用以下输入参数定义回调方法:

  • 定义类的实例作为第一个参数

  • 事件源句柄

  • 事件数据

函数签名是这样的形式:

函数methodName(obj, src, eventData)…结束

对于静态方法,所需的类名确保MATLAB®分派给指定类的方法:

@MyClass.methodName

用两个输入参数定义静态回调方法—事件源句柄和事件数据

函数签名是这样的形式:

函数methodName(eventData src)

传递额外参数

如果除了MATLAB传递的源和事件数据参数外,还想向回调传递参数,则可以使用匿名函数。分配给图形对象的匿名函数的基本语法回调属性包含对象作为第一个参数:

@ (src、事件)callbackMethod(对象、src eventData __arg1…argn)

函数签名是这样的形式:

函数methodName(obj, src, eventData变长度输入宗量)……结束

为滑动条回调使用类方法

这个例子展示了如何使用类的方法作为uicontrol滑动条的回调。

SeaLevelSlider类创建一个滑块,该滑块可改变索引图像的颜色限制,从而产生海平面变化的错觉。

类定义

定义SeaLevelSlider作为具有以下成员的句柄类:

  • 类属性存储图形和轴柄以及计算出的颜色限制。

  • 类构造函数创建图形对象并分配滑块回调。

  • 滑块的回调函数接受三个必需的参数—类实例、事件源句柄和事件数据。事件数据参数为空且未使用。

  • uicontrol回调使用点符号来引用回调方法:“回调”,@obj.sliderCallback

classdefSeaLevelSlider <句柄属性图轴结束方法函数obj = SeaLevelSlider(x,map)图=图()“Colormap”地图,“位置”[100100560580],“调整”“关闭”);obj。坐标轴=坐标轴“DataAspectRatio”(1, 1, 1),“XLimMode”“手动”“YLimMode”“手动”“父”, obj.Figure);图像(x,“CDataMapping”“缩放”“父”, obj.Axes);obj。cliit = get(obj.)轴,“爬”);uicontrol (“风格”“滑块”“父”obj。数字“马克斯”-10年,obj.CLimit (2),“最小值”, obj.CLimit (1) 1“价值”obj.CLimit (1)“单位”“归一化”“位置”, (0.9286, 0.1724, 0.0357, 0.6897),“SliderStep”[0.003, 0.005],“回调”, @obj.sliderCallback);结束函数sliderCallback(obj,src,~)“价值”);maxVal = obj.CLimit(2);obj. axis . clim = [minVal maxVal];结束结束结束

使用SeaLevelAdjuster类

类使用图像,包含在MATLAB产品中。获取图像数据,请使用负载命令:

负载X地图

加载数据后,创建一个SeaLevelSlider对象:

slaObj = SeaLevelSlider(X,map);

移动滑块以更改颜色映射并可视化海平面的上升。

相关的话题

这个话题有帮助吗?