ウェイトバー関数を使用して、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コールバックがあります。このコールバックでは、ユーザーが質問に対する回答を入力します。このコールバックの最後に、正解ごとに、ウェイトバーが少しいっぱいになるようにします。ただし、percentageDone変数にどの値を割り当てても、GUIのウェイトバーはまったく変更されません。
誰かがこれを手伝ってくれますか?