我正在尝试使用 waitbar 函数在 MATLAB 程序中实现“完成百分比”栏。但是,我遇到了麻烦。这是我目前拥有的代码:
在我的 GUI 中
POSITION = [53.3333 20 188.5446 20];
H = uiwaitbar(POSITION);
for percentageDone = 0;
uiwaitbar(H,percentageDone);
end
然后
function h = uiwaitbar(varargin)
if ishandle(varargin{1})
ax = varargin{1};
value = varargin{2};
p = get(ax,'Child');
x(3:4) = value;
set(p,'XData',x)
return
end
pos = varargin{1};
bg_color = [1 1 1];
fg_color = [0 .5 0];
h = axes('Units','pixels',...
'Position',pos,...
'XLim',[0 100],'YLim',[0 1],...
'XTick',[],'YTick',[],...
'Color',bg_color,...
'XColor',bg_color,'YColor',bg_color);
patch([0 0 0 0],[0 1 1 0],fg_color,...
'Parent',h,...
'EdgeColor','none',...
'EraseMode','none');
end
在脚本的其他地方,我有一个 KeyPressFcn 回调,用户在其中输入问题的答案。在此回调结束时,对于每个正确答案,我希望等待栏填满一点。但是,无论我为 percentDone 变量分配什么值,GUI 中的等待栏都不会发生任何变化。
有人可以帮我吗?