0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹兩種LabVIEW里實(shí)現(xiàn)進(jìn)度條的方式

jf_V8z5L4Nx ? 來源:傳感測控物聯(lián)網(wǎng) ? 2023-07-14 09:29 ? 次閱讀

進(jìn)度條,是一個非常重要的UI元素。 工控軟件里有些任務(wù)耗時很長,為了不讓用戶感覺等待的過程過于漫長,也為了告訴用戶軟件還在正常運(yùn)行、及時告訴用戶完成到什么程度了、大概還要多久可以完成,我們有必要給軟件設(shè)計(jì)一個進(jìn)度條。 本篇推送里我們介紹兩種實(shí)現(xiàn)進(jìn)度條的方式:

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

使用WF Progress Bar插件。

1.Horizontal Progress Bar控件

Horizontal Progress Bar是LabVIEW自帶的進(jìn)度條控件,本質(zhì)上是個數(shù)值顯示控件,位于Numeric控件分類里。根據(jù)使用習(xí)慣的不同,大致上有以下幾種使用方式。

1)直接使用Horizontal Progress Bar 直接把代表進(jìn)度的數(shù)值寫給Horizontal Progress Bar。 例如下面這個代碼,task i表示第i項(xiàng)任務(wù),我們等待一下,模擬這個任務(wù)需要耗費(fèi)點(diǎn)時間。這樣這個進(jìn)度條隨著任務(wù)的執(zhí)行就可以自動更新進(jìn)度了。進(jìn)度條的數(shù)據(jù)類型、最小值、最大值都可以在屬性里設(shè)置。

d299fdf4-21d5-11ee-962d-dac502259ad0.png

d2ad910c-21d5-11ee-962d-dac502259ad0.png

上面這個進(jìn)度條實(shí)現(xiàn)方式非常簡單,但是缺點(diǎn)也很明顯:我們需要通過屬性節(jié)點(diǎn)或者局部變量來更新進(jìn)度條,不能在子VI內(nèi)更新。

2)SubVI + Horizontal Progress Bar控件 為解決子VI內(nèi)更新進(jìn)度的問題,我們可以設(shè)計(jì)一個專門用來更新進(jìn)度條的子VI,把指向Horizontal Progress Bar的引用作為參數(shù),在子VI內(nèi)更新進(jìn)度條的值。下面是更新進(jìn)度條值(進(jìn)度)的子VI代碼,比如我們命名為UpdateProgressBar.vi。

d2bcbca4-21d5-11ee-962d-dac502259ad0.png

d2c6410c-21d5-11ee-962d-dac502259ad0.png

需要更新進(jìn)度的時候,調(diào)用這個VI即可。例如下面這個示例代碼。

d2d7b3c4-21d5-11ee-962d-dac502259ad0.png

3)全局變量+Horizontal Progress Bar控件 還有一種從各個層次VI變更主界面上進(jìn)度條的方式就是使用全局變量。另外設(shè)計(jì)一個線程,這個線程負(fù)責(zé)定期讀取全局變量的值并更新進(jìn)度條。 例如下面這個程序,我們調(diào)整Progress值時進(jìn)度條將同步變化。

d2e62a76-21d5-11ee-962d-dac502259ad0.png

代碼如下:

d2f28cee-21d5-11ee-962d-dac502259ad0.png

上圖中下面的線程會定去讀取Progress全局變量的值并更新進(jìn)度條顯示。

以上是進(jìn)度條位于主界面的情況,如果我們需要動態(tài)彈出進(jìn)度條進(jìn)行提示呢?如果需要進(jìn)度條滾動的同時給出文字提示呢?當(dāng)然我們可以利用Horizontal Progress Bar寫一些專用的VI。不過這需要花費(fèi)不少時間和精力。好在針對進(jìn)度條這樣一個經(jīng)常會用到的控件,已經(jīng)有人將其設(shè)計(jì)成標(biāo)準(zhǔn)插件了。

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

2.WF Progress Bar插件

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

d300b74c-21d5-11ee-962d-dac502259ad0.png

安裝好之后,我們可以在Addon里找到相關(guān)的函數(shù)和控件。

d3238934-21d5-11ee-962d-dac502259ad0.png

從Help菜單里打開Find Examples對話框,搜索Progress找到Progressbar test_WireFlow.vi。這是WF ProgressBar的示例項(xiàng)目。

d33b0eec-21d5-11ee-962d-dac502259ad0.png

下面這個GIF是Progressbar test_WireFlow.vi部分運(yùn)行情況,展示了WF ProgressBar的一部分效果。這里面包括開始階段Splash Screen的加載進(jìn)度條,都是WF ProgressBar插件實(shí)現(xiàn)的。

d35a0de2-21d5-11ee-962d-dac502259ad0.gif

Progressbar test_WireFlow.vi主要代碼如下:

Splash Screen進(jìn)度條加載和顯示代碼:

d373fc16-21d5-11ee-962d-dac502259ad0.png

實(shí)現(xiàn)步驟:

1)創(chuàng)建ProgressBar實(shí)例,打開Splash Screen前面板。

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

3)更新進(jìn)度提示信息

4)更新進(jìn)度值。

5)關(guān)閉進(jìn)度條窗口。

6)關(guān)閉進(jìn)度條對話(Session)。

3)和4)根據(jù)任務(wù)需要循環(huán)或順序執(zhí)行。

不同主題的進(jìn)度條加載和顯示代碼:

d3877c00-21d5-11ee-962d-dac502259ad0.png

實(shí)現(xiàn)步驟:

1)創(chuàng)建ProgressBar示例,設(shè)定主題(樣式),但是不打開前面板。

2)填寫保持不變的提示信息。

3)設(shè)定ProgressBar最小值、最大值。

4)打開前面板。

5)更新進(jìn)度條提示信息。

6)更新進(jìn)度值。

7)關(guān)閉ProgressBar。

8)關(guān)閉對話(Session)。

WF ProgressBar進(jìn)度條的樣式是可以自定義的,詳細(xì)方法可參考WF ProgressBar的幫助文檔。 借助WF ProgressBar插件可以快速應(yīng)用專業(yè)的進(jìn)度條,讓軟件人機(jī)界面更加友好,感興趣的朋友不妨試一試。

以上是關(guān)于進(jìn)度條的一些知識,簡單的和復(fù)雜的方法都介紹到了,稍加改變或變通就能夠滿足絕大多數(shù)應(yīng)用開發(fā)需求,希望能夠幫助到你。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LabVIEW
    +關(guān)注

    關(guān)注

    1958

    文章

    3651

    瀏覽量

    321462

原文標(biāo)題:LabVIEW里進(jìn)度條的兩種高效實(shí)現(xiàn)方式

文章出處:【微信號:傳感測控物聯(lián)網(wǎng),微信公眾號:傳感測控物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    LabVIEW原版Windows的進(jìn)度條UI

    `通過調(diào)用.Net接口實(shí)現(xiàn),感覺這個進(jìn)度條的動畫效果還是不錯的,在這里分享一下 ` (文件被吞重傳)
    發(fā)表于 02-05 14:33

    關(guān)于進(jìn)度條

    我用的labview8.6,初學(xué)者,在那能找到進(jìn)度條啊!
    發(fā)表于 10-28 11:35

    進(jìn)度條問題

    如何通過編程的方法改變進(jìn)度條刻度的最大值?
    發(fā)表于 02-20 22:55

    自己做的好看的進(jìn)度條

    看論壇有人做的進(jìn)度條模仿者做了一個感覺還挺漂亮希望大家多提意見
    發(fā)表于 08-27 16:24

    【安富萊原創(chuàng)】【STemWin教程】第52章 PROGBAR-進(jìn)度條控件

    使用GUIBulder建立多頁控件 52. 4 總結(jié) 52.1 進(jìn)度條控件介紹進(jìn)度條通常在應(yīng)用程序中用于實(shí)現(xiàn)虛擬化,下面的截圖是設(shè)置了皮膚和沒有設(shè)置皮膚時的顯示效果:設(shè)置皮膚后顯示效
    發(fā)表于 05-16 14:45

    labview進(jìn)度條

    這是一個labview進(jìn)度條程序,比較好用
    發(fā)表于 08-04 14:30

    怎么用labview實(shí)現(xiàn)下載程序的進(jìn)度條

    怎么用labview實(shí)現(xiàn)下載程序的進(jìn)度條
    發(fā)表于 01-12 21:43

    第52章 PROGBAR-進(jìn)度條控件

    52. 4 總結(jié)52.1 進(jìn)度條控件介紹 進(jìn)度條通常在應(yīng)用程序中用于實(shí)現(xiàn)虛擬化,下面的截圖是設(shè)置了皮膚和沒有設(shè)置皮膚時的顯示效果: 設(shè)置皮膚后顯示效果如下:
    發(fā)表于 10-18 09:32

    labview進(jìn)度條

    我用labview2017做了一個文件解壓和復(fù)制的vi,解壓過程中不知道真實(shí)的解壓進(jìn)度,怎么才能做一個真實(shí)的進(jìn)度條,要真是的,不是自己規(guī)定的,求助?。?!
    發(fā)表于 04-26 09:10

    labview實(shí)現(xiàn)進(jìn)度條

    進(jìn)度條
    發(fā)表于 03-25 17:06

    怎么設(shè)置進(jìn)度條?

    RT!比如 我創(chuàng)建一個隨意長度的進(jìn)度條然后我知道一個文件的大小 當(dāng)把這個文件的數(shù)據(jù)讀完后進(jìn)度條也跟著完畢請問那位弄過?我搞了下隨意創(chuàng)建 有問題有事候進(jìn)度條會超出 邊框那么一點(diǎn)點(diǎn)!
    發(fā)表于 08-22 04:35

    HarmonyOS實(shí)戰(zhàn)——ProgressBar進(jìn)度條組件基本使用

    里面的值 + 5//獲取進(jìn)度條里面原本的值//兩種獲取進(jìn)度條組件的方式://1.把onStart方法的pb移動到成員位置//2.onClick方法的形參,也表示被點(diǎn)擊的組件對象//下面
    發(fā)表于 09-22 23:31

    在Linux下實(shí)現(xiàn)進(jìn)度條程序,通過makefile進(jìn)行編譯

    1. 在Linux下實(shí)現(xiàn)進(jìn)度條程序。 通過makefile進(jìn)行編譯。 建議自主完成一個彩色的進(jìn)度條。 寫Makefile文件的原因:Makefile文件的作用是命令行編譯鏈接命令nmake
    發(fā)表于 03-12 16:31 ?2042次閱讀

    LcdProgressBarDouble LCD顯示器顯示進(jìn)度條

    電子發(fā)燒友網(wǎng)站提供《LcdProgressBarDouble LCD顯示器顯示進(jìn)度條.zip》資料免費(fèi)下載
    發(fā)表于 12-27 09:49 ?1次下載
    LcdProgressBarDouble LCD顯示器顯示<b class='flag-5'>兩</b>個<b class='flag-5'>進(jìn)度條</b>

    【AWTK使用經(jīng)驗(yàn)】如何設(shè)計(jì)立體電池進(jìn)度條?

    AWTK是基于C語言開發(fā)的跨平臺GUI框架。《AWTK使用經(jīng)驗(yàn)》系列文章將介紹開發(fā)AWTK過程中一些常見問題與解決方案,例如:如何加載外部資源?如何設(shè)計(jì)自定義進(jìn)度條?這些都會在系列文章進(jìn)行解答
    的頭像 發(fā)表于 04-18 08:25 ?379次閱讀
    【AWTK使用經(jīng)驗(yàn)】如何設(shè)計(jì)立體電池<b class='flag-5'>進(jìn)度條</b>?