matlab gui 中指定axes窗口画进度条

转自:http://www.ilovematlab.cn/thread-61732-1-1.html

当matlab 的gui中有多个axes窗口时,指定一个axes窗口作为进度条窗口

 

function mywaitbar(x,varargin)
if nargin < 1
    error('Input arguments not valid');
end
fh = varargin{end};
set(0,'CurrentFigure',fh);
%fAxes = findobj(fh,'type','axes');
fAxes =varargin{2};
set(fh,'CurrentAxes',fAxes);
if nargin > 1
    hTitle = get(fAxes,'title');
    set(hTitle,'String',varargin{1});
end
fractioninput = x;
x = max(0,min(100*x,100));
if fractioninput == 0    
    cla
    xpatch = [0 x x 0];
    ypatch = [0 0 1 1];
    xline = [100 0 0 100 100];
    yline = [0 0 1 1 0];
    patch(xpatch,ypatch,'r','EdgeColor','r','EraseMode','none');
    set(fh,'UserData',fractioninput);
    l = line(xline,yline,'EraseMode','none');
    set(l,'Color',get(gca,'XColor'));   
else
    p = findobj(fh,'Type','patch');
    l = findobj(fh,'Type','line');
    if (get(fh,'UserData') > fractioninput)
        set(p,'EraseMode','normal');
    end
    xpatch = [0 x x 0];
    set(p,'XData',xpatch);
    xline = get(l,'XData');
    set(l,'XData',xline);  
end
drawnow;


%主程序调用:修改句柄函数值就可以指定axes1作为条形框了
h1=findobj(handles.axes1,'visible','off');%获取按键1的可视化句柄
set(h1,'visible','on');%设置句柄为可见
mywaitbar(0,'Please Wait...',handles.axes1,handles.figure1);
TheEndTime = 600; 
for t = 1:TheEndTime
       mywaitbar(t/TheEndTime,[num2str(floor(t*100/TheEndTime)),'%'],handles.axes1,handles.figure1);
end

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值