介绍两种LabVIEW里实现进度条的方式

电子说

1.3w人已加入

描述

 

进度条,是一个非常重要的UI元素。 工控软件里有些任务耗时很长,为了不让用户感觉等待的过程过于漫长,也为了告诉用户软件还在正常运行、及时告诉用户完成到什么程度了、大概还要多久可以完成,我们有必要给软件设计一个进度条。 本篇推送里我们介绍两种实现进度条的方式:

使用LabVIEW自带的Horizontal Progress Bar控件。

使用WF Progress Bar插件。

1.Horizontal Progress Bar控件

Horizontal Progress Bar是LabVIEW自带的进度条控件,本质上是个数值显示控件,位于Numeric控件分类里。根据使用习惯的不同,大致上有以下几种使用方式。

1)直接使用Horizontal Progress Bar 直接把代表进度的数值写给Horizontal Progress Bar。 例如下面这个代码,task i表示第i项任务,我们等待一下,模拟这个任务需要耗费点时间。这样这个进度条随着任务的执行就可以自动更新进度了。进度条的数据类型、最小值、最大值都可以在属性里设置。

L

L

上面这个进度条实现方式非常简单,但是缺点也很明显:我们需要通过属性节点或者局部变量来更新进度条,不能在子VI内更新。  

2)SubVI + Horizontal Progress Bar控件 为解决子VI内更新进度的问题,我们可以设计一个专门用来更新进度条的子VI,把指向Horizontal Progress Bar的引用作为参数,在子VI内更新进度条的值。下面是更新进度条值(进度)的子VI代码,比如我们命名为UpdateProgressBar.vi。

L

L

需要更新进度的时候,调用这个VI即可。例如下面这个示例代码。

L

  3)全局变量+Horizontal Progress Bar控件 还有一种从各个层次VI变更主界面上进度条的方式就是使用全局变量。另外设计一个线程,这个线程负责定期读取全局变量的值并更新进度条。 例如下面这个程序,我们调整Progress值时进度条将同步变化。

L

代码如下:

L

上图中下面的线程会定去读取Progress全局变量的值并更新进度条显示。  

以上是进度条位于主界面的情况,如果我们需要动态弹出进度条进行提示呢?如果需要进度条滚动的同时给出文字提示呢?当然我们可以利用Horizontal Progress Bar写一些专用的VI。不过这需要花费不少时间和精力。好在针对进度条这样一个经常会用到的控件,已经有人将其设计成标准插件了。

下面我们看看WF Progress Bar插件。

2.WF Progress Bar插件

在VI Package Manager里搜索progress,找到WF ProgressBar,按提示安装好插件。

L

安装好之后,我们可以在Addon里找到相关的函数和控件。

L

从Help菜单里打开Find Examples对话框,搜索Progress找到Progressbar test_WireFlow.vi。这是WF ProgressBar的示例项目。

L

  下面这个GIF是Progressbar test_WireFlow.vi部分运行情况,展示了WF ProgressBar的一部分效果。这里面包括开始阶段Splash Screen的加载进度条,都是WF ProgressBar插件实现的。

L

Progressbar test_WireFlow.vi主要代码如下:

Splash Screen进度条加载和显示代码:

L

实现步骤:

1)创建ProgressBar实例,打开Splash Screen前面板。

2)指定ProgressBar最小值、最大值。

3)更新进度提示信息。

4)更新进度值。

5)关闭进度条窗口。

6)关闭进度条对话(Session)。

3)和4)根据任务需要循环或顺序执行。

不同主题的进度条加载和显示代码:

L

实现步骤:

1)创建ProgressBar示例,设定主题(样式),但是不打开前面板。

2)填写保持不变的提示信息。

3)设定ProgressBar最小值、最大值。

4)打开前面板。

5)更新进度条提示信息。

6)更新进度值。

7)关闭ProgressBar。

8)关闭对话(Session)。

WF ProgressBar进度条的样式是可以自定义的,详细方法可参考WF ProgressBar的帮助文档。 借助WF ProgressBar插件可以快速应用专业的进度条,让软件人机界面更加友好,感兴趣的朋友不妨试一试。  

以上是关于进度条的一些知识,简单的和复杂的方法都介绍到了,稍加改变或变通就能够满足绝大多数应用开发需求,希望能够帮助到你。  

 





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • L

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分