waitbar cancel doesn't work
    4 ビュー (過去 30 日間)
  
       古いコメントを表示
    
First of all it seems that this is common issue. I read all the topics I could find on the forum here, but there was no clear answer. 
Adding drawnow didn't work. 
And, Yes, the function is interruptible.
f = waitbar(0,'Loading','Name','Exporting...',...
    'CreateCancelBtn','setappdata(gcbf,''canceling'',0)');
for k = 1:16
    if getappdata(f,'canceling') == 1
        break
    end
    figure('Visible', 'off');
    ExpFig = trisurf(F,P(:,1),P(:,2),P(:,3),app.UITable4.Data(:,k));
    exportgraphics(gcf, string(file) ,"BackgroundColor","none","ContentType","vector","Append",true);
    close;
    waitbar(k/16, f, sprintf('Export Progress: %d %%', floor (k/16*100)));
    pause(0.1);
    drawnow();
end
delete (f);
msgbox('Export Completed!');
0 件のコメント
採用された回答
  Rik
      
      
 2022 年 3 月 25 日
        You forgot to set the value first and you reversed 0 and 1:
f = waitbar(0,'Loading','Name','Exporting...',...
    'CreateCancelBtn','setappdata(gcbf,''canceling'',1)');
setappdata(f,'canceling',0);
for k = 1:16
    if getappdata(f,'canceling')
        break
    end
    figure('Visible', 'off');
    ExpFig = trisurf(F,P(:,1),P(:,2),P(:,3),app.UITable4.Data(:,k));
    exportgraphics(gcf, string(file) ,"BackgroundColor","none","ContentType","vector","Append",true);
    close;
    waitbar(k/16, f, sprintf('Export Progress: %d %%', floor (k/16*100)));
    pause(0.1);
    drawnow();
end
delete (f);
msgbox('Export Completed!');
6 件のコメント
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Graphics Performance についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

