Matlab滑块将值传递给事件处理程序

时间:2014-07-08 23:21:36

标签: matlab user-interface slider handler

我是Matlab GUI的新手,我有以下问题。 我已经声明了一个滑块控件和他的属性,并且我已经在回调和PostSet事件处理程序中添加了一个listerner(我认为它在技术上称为事件处理程序),如下所示:

function [] = HandlerSlide()
%HANDLERSLIDE Summary of this function goes here
%   Detailed explanation goes here
clf;
due = '2';
hSlider = uicontrol(                ...
    'Style','slider',               ...
    'Callback',@(s,e) disp(['hello ',num2str(due),' asdad']),...
    'Position', [400 30 200 20]     ... %[x,y, widht, height]
);
hListener = addlistener(hSlider,'Value','PostSet',@pippo);


end

function [] = pippo(s,e)

disp('ciao');

end

正如您所看到的,我在Callback处理程序(匿名函数)中使用了参数“ due ”。现在我想传递参数以在“ pippo ”函数中使用而不将其声明为匿名函数。可能吗? 换句话说,我想像这样声明“ hListerner ”:

hListener = addlistener(hSlider,'Value','PostSet',@pippo{parameter1,parameter2, etc ...});

function[] = pippo(s,e, parameter1, parameter2, etc ...)

除了如何在主体中使用“ pippo ”返回的值?

提前谢谢你:D

1 个答案:

答案 0 :(得分:0)

句柄函数中的输入添加如下:

hListener = addlistener(hSlider,'Value','PostSet',{@pippo,parameter1,parameter2});

你必须在功能中小心,因为"参数1"不是第一个输入,而是第三个输入(在源和事件数据之后)。