0

我正在根据此代码使用回调函数 gui中的回调函数不知道句柄

但是,在使用回调函数调用的函数中,我无法更改句柄结构中的数据。

handles.waitbar.text = 'Reading images ...';
handles = readStackAndCreateFokusFunktion( ...
              handles , ...
              @(value, maxValue) ...
                    z_WaitBarUpdate(value, maxValue, handles));

在调用的函数中,我修改了句柄,但这在函数中没有使用z_WaitBarUpdate

function handles = readStackAndCreateFokusFunktion( handles, fcallback )

handles.waitbar.text = 'Extracting number of images in calibration file ...'; 
guidata(handles.output,handles);
% calls z_WaitBarUpdate as extpected, but the text is still 'Reading images ...'
fcallback(0, 100);
4

2 回答 2

0

回调函数中句柄的简单更新解决了这个问题:

function z_WaitBarUpdate(value, maxValue, handles)
handles=guidata(handles.output); % <- added
if ishandle(handles.waitbar.handle)
    waitbar(value/maxValue,handles.waitbar.handle,handles.waitbar.text);
end
于 2013-01-11T10:42:16.630 回答
0

您必须最后更新句柄结构

guidata(handles.output);

于 2014-05-31T04:31:29.740 回答