图形回调的类方法
引用方法
要使用普通类方法作为图形对象的回调,请将回调属性指定为引用该方法的函数句柄。例如,
uicontrol(“风格”、“滑块”、“回调”,@obj.sliderCallback)
你的类定义了一个叫做sliderCallback
和obj
是类的实例。
要使用静态方法作为回调,请将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);
移动滑块以更改颜色映射并可视化海平面的上升。
相关的话题
这个话题有帮助吗?