MATLAB app designer 菜鸟进阶学习(二)
创建进度对话框
在编写APP时,有时候会发现程序需要执行较长一段时间,而这段时间界面如果没有任何变化,会影响交互性。因此,进度对话框的存在是界面人性化设计的重要一步。
函数语句:
d = uiprogressdlg(app.UIFigure,'Title','Approximating Pi',... 'Message','1','Cancelable','on');
% Close the dialog box close(d);
创建进度条的方式即:
d = uiprogressdlg(app.UIFigure,'Title','Approximating Pi',... 'Message','1','Cancelable','on');
这个语句中,Title是指对话框的标题,如图,标题内容为“Please wait”;Message是指对话框进度条的提示消息,如下图的“数据处理中”,
Cancelable是指是否允许取消,允许取消,指定为'off'
或'on'
。
值为'on'
表示在对话框中显示取消按钮。可以通过指定CancelText
属性来自定义按钮标签。
当允许取消时,必须检查CancelRequested
属性的值,并在值为true
时调用close
函数。否则,对话框将无限期显示。(后面讲会提及)
在进度结束后关闭对话框的方式为:close(d);
下面针对不同的应用场景,介绍三种进度条
1.确定进度条
确定进度条即如下图所示,可实时反映进程的进度条。
app.UIFigured
= uiprogressdlg(,
使用 Name,Value
)Name,Value
对组参数指定 ProgressDialog
属性值。可通过属性值控制对话框的外观和行为。例如,您可以在对话框中添加标题或消息,或者指定不确定进度条。
例如:
function plot1ButtonPushed(app, event) n=100; s=0:app.L1/n:app.L1; j=n/2; q=0:app.dQ:app.Q; m=length(q); cla(app.qlUIAxes) hold(app.qlUIAxes,'on'); z=0; z0=1/m; for i=q d=uiprogressdlg(app.UIFigure,'Title','Please Wait',... 'Message','数据处理中','value',z); xishu(app,i,app.L1,s,j); z=z+z0; end close(d);
为了使得进度随计算过程实时显示,可以直接将
d=uiprogressdlg(app.UIFigure,'Title','Please Wait',... 'Message','数据处理中','value',z);
放入计算的循环中,并使value值随之变动。
value 值为0时,进度条为空,为1时,进度条为满,故而将value值设为1/循环次数,每循环一次叠加一次,从而实时显示。
2.不确定进度条
不确定进度条即如下图所示,以动画方式显示的进度条,指示不知道预计完成时间。
不确定性进度条的设置为
d = uiprogressdlg(app.UIFigure,'Title','Computing SVD',... 'Indeterminate','on');
其他内容同上,要注意的是Indeterminate属性, 将 Indeterminate
属性设置为 'on'
将以动画方式显示进度条,指示不知道预计完成时间。计算完成后,将由 close
函数关闭对话框
3.带有取消按钮的确定进度条
带有取消按钮的确定进度条即如下图所示,可实时反映进程的进度条,也可以直接取消
语句为
d = uiprogressdlg(app.UIFigure,'Title','Approximating Pi',... 'Message','1','Cancelable','on');
其中,执行取消功能的是将 Cancelable
属性设置为 'on'
将创建默认标签为
if d.CancelRequested break end
posted on 2020-04-02 11:05 挽年_Sonny 阅读(10000) 评论(0) 编辑 收藏 举报