我正在为带有几个运行回调函数的 GUI 项目的图形窗口编写代码。目前我有一个文本框和一个滑块控件,我进行了设置,以便对文本框值的更改不仅会更改显示的数据,还会更新滑块位置以匹配该值。我遇到的问题是试图让我的varargin
参数(在创建图形窗口时输入到主函数中)不被包含在父cell
变量中。当我的顶层varargin
包含一个值参数对时,varargin
是一个cell
维度为 1x2 。没关系。通常,可以将所有这些参数传递给内部函数调用,如下所示:
function topfunc(varargin)
%code
do_something(varargin{:})
该函数会dosomething
看到正确的参数列表。但是当我通过定义传递 varargins 时callback
,如
txtui = uicontrol(hf,'Style','edit','string',fristframe,'backgroundcolor','y',...
'position',[10 100 50 20],'Tag','Scaler','UserData',lsatframe,...
'Callback',{@doslide,adcname,mode,goodframes,{varargin{:}} } );
然后该函数 doslide
调用绘图更新函数dordplot
function doslide(theui,event,fileName,mode, goodframes,varargin)
% code snipped...
dordplot(slidinfo,event,fileName,mode,goodframes,varargin{:});
end
内部doslide
,varargin
是一个 1x1 单元格,其中包含预期的 1x2 单元格。
我在我的最终函数中添加了一个 kludge fix,其中varargin
实际使用了
varargin = varargin{:};
varargin
但是,一开始就被包裹在牢房里似乎是错误的。
是否有修复,或者我是否错误地定义了我的回调函数调用?