uicontrol回调的输入参数太多

时间:2013-01-16 13:09:05

标签: matlab user-interface matlab-figure matlab-guide

我正在尝试编写一个滚动条,同时更改许多子图的x范围。

kids = get(gcf,'Children');
 h=uicontrol('style','slider',...
'units','normalized','position',Newpos,...
'callback',{@slide_axes,kids},'min',0,'max',xmax-chunkDuration);

Update_axes在同一个文件中定义:

function slide_axes(h)
 set(h,'xlim',get(gcbo,'value')+[0 20000]); 

然而,我收到错误:

??? Error using plot_scroll>slide_axes
Too many input arguments.

??? Error while evaluating uicontrol Callback

我在FEX上读到回调可能会将两个参数传递给任何回调函数。但是,当我将slide_axes的签名更改为slide_axes(h,evt)时,错误仍然存​​在。

1 个答案:

答案 0 :(得分:2)

您传递的参数(hevt)是MATLAB默认值。如果要将其他参数传递给回调函数,则需要在hevt之后编写它们。像这样:

function slide_axes(h, evt, k)
    % k is kids.
end