035_Progress_Dialog_in_Matlab中的进度条对话框

进度条

在这里插入图片描述

概念

在使用Matlab开发界面时,有一个很好用的工具就是进度条。在计算过程中,为用户提供计算进度的反馈是改善用户体验的重要手段。

一项进行的计算任务,如果其总体进度是比较容易量化,则可以按照0%~100%的方式,更新界面上的指示。

当一项任务的进度难以量化,或者只需要提示程序目前正在忙碌之中,则可以提供一个界面动画来提示任务正在进行中。

当然,进度条还可能提供另外一个功能,取消背景任务的功能。

综上所述,进度条的概念提供了三个方面的功能:

  1. 显示任务的量化进度;
  2. 显示非量化的任务进心中;
  3. 提供取消任务的功能。

这在UI/UX中,是三个不同的概念。

此外,在使用进度条中,还有一个需要分析清楚的需求。也就是是否需要有并行的才做。这就决定在显示进度条的对话框(窗口)是模式对话框还是非模式对话框。

  • 模式对话框:必须关闭对话框才能操作父窗口;
  • 非模式对话框:无需关闭对话框,可以把焦点切换到父窗口,与其中的控件交互。

这两种模式的对话框用途略有不同,模式对话框采取了中断用户操作的方式,使用户的全部注意力集中于当前对话框中;而非模式对话框则是提供独立的额外信息,随时可以关闭、置于后台和查看。通过用户体验进行需求分析,很容易就可以确定使用哪种对话框。

  • 如果程序只有一项中心任务正在进行,且不便于或者无需提供其它交互,则进度条选择模式对话框
  • 如果是一项背景任务或者异步任务,这更适合选择非模式对话框来实现进度条,或者把进度条放置于当前窗口中的某个位置(如状态栏)

在Matlab这种以计算为核心的环境中,大部分时候都会把主要的资源集中用于数值计算,所以模式对话框来显示进度、提供取消的功能可能会更加符合逻辑。

工具

在以uifigure为基础的App开发中,提供了一系列对话框和通知的工具:

函数 作用
uialert 显示警报对话框
uiconfirm 创建确认对话框
uiprogressdlg 创建进度对话框
uisetcolor 打开颜色选择器
uigetfile 打开文件选择对话框
uiputfile 打开用于保存文件的对话框
uigetdir 打开文件夹选择对话框
uiopen 打开文件选择对话框并将选定的文件加载到工作区中
uisave 打开用于将变量保存到 MAT 文件的对话框

进度条对话框

语法

进度条是一个对话框,名字都称为是dlg。调用的方式:

d = uiprogressdlg(fig)
d = uiprogressdlg(fig,Name,Value)

调用的第一个参数是不能省略的,对应一个图窗,必须采用uifigure函数创建。

而参数有以下几类:

  1. 外观:
    1. Message,显示在进度条上面的信息;
    2. Title,对话框的标题
    3. Icon,在进度条左侧显示的图标,采用图像名称或者图像数组
    4. Interpreter,文本的解释器(tex,latex,html),如果动态更新信息或者标题的频率过高,设置解释器可能会降低效率
  2. 进度:
    1. Value,这个是一个∈[0,1]\in [0,1][0,1]中的数值,就是主要的设定进度的接口
    2. ShowPercentage,是否显示比分比的文本,默认是’off’
    3. Indeterminate,设定不确定的进度,仅仅显示任务进行中
  3. 交互性
    1. Cancelable,是否允许取消,如果设置为on,则显示一个取消按钮
    2. CancelText,设定取消按钮的文本
    3. CancelRequest,是否已经请求取消的属性,如果已经按下取消按钮,这个值就是true,程序可以选择相应的处理。

在创建过程中,可以设定这些值,也可以采用仅仅传入fig的方式调用,后续采用属性的方式设定。

dlg = uiprogressdlg(fig);
dlg.Icon = "logo.png";
dlg.Cancelable = 'on';
dlg.CancelText = "Stop";

% ...

d.Message = "step 1 done";
d.Value = 0.55
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大福是小强

除非你钱多烧得慌……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值