在matlab中如何创建一个等待条对话框
的有关信息介绍如下:f=wait bar(x,msg)创建包含具有指定消息的等待栏的非模式对话框。等待栏是分数长度x。在控制它的代码关闭它或用户单击对话框标题栏中的关闭按钮(x)之前,对话框保持打开状态。Figure对象作为f返回。
f=waitbar(x,msg,Name,Value)使用一个或多个在对话框上设置地物属性的名称-值对参数指定其他选项。例如,'Name','Progress'将对话框名称设置为Progress。在所有其他输入参数之后指定名称-值对参数。
wait bar(x)将当前等待栏对话框中的栏长度更新为x。x的连续值通常会增加。如果它们减少,则等待条将反向运行。
wait bar(x,f)将“等待栏”对话框f中的栏长度更新到新位置x。
wait bar(x,f,msg)更新等待栏对话框f中的消息。
“创建基本等待栏”对话框
创建一个等待栏对话框,更新代码中三个点处的分数等待栏长度和消息。
使用此代码模拟执行冗长的计算。pause函数将第一个wait bar对话框的figure对象传递给后续的waitbar函数调用。通过这种方式传递figure对象可以确保在每个点更新对话框,而不是重新创建。模拟计算完成后,对话框关闭。
function basicwaitbar
f = 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
更新等待栏消息并添加取消按钮
添加“取消”按钮,使用户可以停止正在进行的计算。
使用以下代码收敛到循环迭代中pi的值,每次迭代时更新等待栏和消息。当用户单击“取消”按钮时,MATLAB®会在图形应用程序数据(appdata)中将逻辑标志“取消”设置为1(true)。代码在for循环中测试该值,如果标志值为1,则退出循环。有关应用程序数据的详细信息,请参阅将数据存储为应用程序数据。
将CreateCancelBtn回调设置为字符向量值。除非由值指定的代码很简单(如本回调代码中的情况),否则不建议使用此做法。有关详细信息,请参阅以编程方式创建的应用程序的写回调。
function approxpi
f = 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);
end
delete(f)
end