進度條,是一個非常重要的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項任務,我們等待一下,模擬這個任務需要耗費點時間。這樣這個進度條隨著任務的執行就可以自動更新進度了。進度條的數據類型、最小值、最大值都可以在屬性里設置。
上面這個進度條實現方式非常簡單,但是缺點也很明顯:我們需要通過屬性節點或者局部變量來更新進度條,不能在子VI內更新。
2)SubVI + Horizontal Progress Bar控件 為解決子VI內更新進度的問題,我們可以設計一個專門用來更新進度條的子VI,把指向Horizontal Progress Bar的引用作為參數,在子VI內更新進度條的值。下面是更新進度條值(進度)的子VI代碼,比如我們命名為UpdateProgressBar.vi。
需要更新進度的時候,調用這個VI即可。例如下面這個示例代碼。
3)全局變量+Horizontal Progress Bar控件 還有一種從各個層次VI變更主界面上進度條的方式就是使用全局變量。另外設計一個線程,這個線程負責定期讀取全局變量的值并更新進度條。 例如下面這個程序,我們調整Progress值時進度條將同步變化。
代碼如下:
上圖中下面的線程會定去讀取Progress全局變量的值并更新進度條顯示。
以上是進度條位于主界面的情況,如果我們需要動態彈出進度條進行提示呢?如果需要進度條滾動的同時給出文字提示呢?當然我們可以利用Horizontal Progress Bar寫一些專用的VI。不過這需要花費不少時間和精力。好在針對進度條這樣一個經常會用到的控件,已經有人將其設計成標準插件了。
下面我們看看WF Progress Bar插件。
2.WF Progress Bar插件
在VI Package Manager里搜索progress,找到WF ProgressBar,按提示安裝好插件。
安裝好之后,我們可以在Addon里找到相關的函數和控件。
從Help菜單里打開Find Examples對話框,搜索Progress找到Progressbar test_WireFlow.vi。這是WF ProgressBar的示例項目。
下面這個GIF是Progressbar test_WireFlow.vi部分運行情況,展示了WF ProgressBar的一部分效果。這里面包括開始階段Splash Screen的加載進度條,都是WF ProgressBar插件實現的。
Progressbar test_WireFlow.vi主要代碼如下:
Splash Screen進度條加載和顯示代碼:
實現步驟:
1)創建ProgressBar實例,打開Splash Screen前面板。
2)指定ProgressBar最小值、最大值。
3)更新進度提示信息。
4)更新進度值。
5)關閉進度條窗口。
6)關閉進度條對話(Session)。
3)和4)根據任務需要循環或順序執行。
不同主題的進度條加載和顯示代碼:
實現步驟:
1)創建ProgressBar示例,設定主題(樣式),但是不打開前面板。
2)填寫保持不變的提示信息。
3)設定ProgressBar最小值、最大值。
4)打開前面板。
5)更新進度條提示信息。
6)更新進度值。
7)關閉ProgressBar。
8)關閉對話(Session)。
WF ProgressBar進度條的樣式是可以自定義的,詳細方法可參考WF ProgressBar的幫助文檔。 借助WF ProgressBar插件可以快速應用專業的進度條,讓軟件人機界面更加友好,感興趣的朋友不妨試一試。
以上是關于進度條的一些知識,簡單的和復雜的方法都介紹到了,稍加改變或變通就能夠滿足絕大多數應用開發需求,希望能夠幫助到你。
審核編輯:劉清
-
LabVIEW
+關注
關注
1963文章
3652瀏覽量
322467
原文標題:LabVIEW里進度條的兩種高效實現方式
文章出處:【微信號:傳感測控物聯網,微信公眾號:傳感測控物聯網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論