App Designer中自建回调函数
在App Designer中,只有通过设计视图的组件库加入的控件才能快速创建回调。那么我们用代码创建的控件该如何回调呢?
通过控件的回调属性可以创建回调,例如按钮的回调属性是ButtonPushedFcn,则可以这样创建一个回调
app.Button1.ButtonPushedFcn = createCallbackFcn(app, @NumButtonPushed,true);
或者
app.Button1.ButtonPushedFcn = @app.NumButtonPushed;
其中,Button1是控件名,NumButtonPushed是回调函数名。
接着,我们要写一个名为NumButtonPushed的函数,输入参数为app和event
function NumButtonPushed(app,event)
这样就完成了自建回调。
如果我们创建的多个控件共用了同一个回调函数,该怎么判断是哪个控件触发了这个函数呢?
如果共用回调函数的是不同类型的控件,我们可以通过event.EventName来判断。event.EventName是触发回调的名称,例如,“按钮被按下”这个事件,其名称为ButtonPushed.
如果共用回调函数的控件类型相同呢?
我们可以利用event.Source,这个属性指向触发回调的控件。虽然没办法获得控件名称,但控件有个Tag属性,我们只需在创建控件时给Tag赋予不同的值,之后便可通过Tag来确定控件。在回调函数中,使用event.Source.Tag访问Tag。