1、“创建基本等待栏”对话框创建一个等待栏对话框,更新代码中三个点处的分数等待栏长度和消息。使用此代码模拟执行冗长的计算。pause函数将第一个wait bar对话框的figure对象传递给后续的waitbar函数调用。通过这种方式传递figure对象可以确保在每个点更新对话框,而不是重新创建。模拟计算完成后,对话框关闭。function basicwaitbarf = waitbar(0,'Please wait...');pause(.5)waitbar(.33,f,'Loading your data');pause(1)waitbar(.67,f,'Processing your data');pause(1)waitbar(1,f,'Finishing');pause(1)close(f)end
2、更新等待栏消息并添加取消按钮添加“取消”按钮,使用户可以停止正在进行的计算。使用以下代码收敛到循环迭代中pi的值,每次迭代时更新等待栏和消息。当用户单击“取消”按钮时,MATLAB®会在图形应用程序数据(appdata)中将逻辑标志“取消”设置为1(true)。代码在for循环中测试该值,如果标志值为1,则退出循环。有关应用程序数据的详细信息,请参阅将数据存储为应用程序数据。将CreateCancelBtn回调设置为字符向量值。除非由值指定的代码很简单(如本回调代码中的情况),否则不建议使用此做法。有关详细信息,请参阅以编程方式创建的应用程序的写回调。function approxpif = waitbar(0,'1','Name','Approximating pi...',... 'CreateCancelBtn','setappdata(gcbf,''canceling'',1)'); setappdata(f,'canceling',0);% Approximate pi^2/8 as: 1 + 1/9 + 1/25 + 1/49 + ...pisqover8 = 1;denom = 3;valueofpi = sqrt(8 * pisqover8);steps = 20000;for step = 1:steps % Check for clicked Cancel button if getappdata(f,'canceling') break end % Update waitbar and message waitbar(step/steps,f,sprintf('%12.9f',valueofpi)) % Calculate next estimate pisqover8 = pisqover8 + 1 / (denom * denom); denom = denom + 2; valueofpi = sqrt(8 * pisqover8);enddelete(f)end