如何使用設(shè)計(jì)LabVIEW高級(jí)用戶界面簡(jiǎn)介
目錄
UI設(shè)計(jì):失傳的藝術(shù)?
1. 自定義UI外觀
2. 合理組織復(fù)雜UI
3. 程序運(yùn)行緩慢時(shí)告知用戶
更多相關(guān)資源
如果您仍然還在默認(rèn)的灰色前面板上填充各種新式或經(jīng)典控件,那么您甚至還沒有真正觸及到用戶界面(UI)的設(shè)計(jì)。
如果說架構(gòu)合理、功能完備的程序框圖好比三明治的夾肉,那么漂亮而實(shí)用的UI則是那上下兩層面包。也許您會(huì)問它是必不可少的嗎?也許不是的,但是這是這一外觀讓它與眾不同。
圖1. 小改變帶領(lǐng)您一步步設(shè)計(jì)出更加漂亮和易用的UI
UI設(shè)計(jì):失傳的藝術(shù)?
如果您咨詢NI LabVIEW開發(fā)者他們使用LabVIEW最愛它的哪一特性,大家會(huì)給您各種各樣的回答,比如可以方便處理現(xiàn)實(shí)世界中的信號(hào),或者使用高級(jí)工具獲得效率提升,又或者是圖形化數(shù)據(jù)流非常自然的的編程方式。開發(fā)者往往忽略了LabVIEW的“圖形化”這一優(yōu)點(diǎn),正是這些圖形界面的前面板構(gòu)成了每一個(gè)VI的“半壁江山”。
編寫優(yōu)美的代碼是每個(gè)應(yīng)用程序重要的組成部分。畢竟,無法正常執(zhí)行的程序是無意義的投資。隨著LabVIEW不斷的擴(kuò)展,它不斷應(yīng)用于越來越復(fù)雜的應(yīng)用中,開發(fā)人員必須投入更多的精力來提高應(yīng)用程序開發(fā)的美感,因?yàn)榧幢闶枪δ芡旰玫某绦?,如果它的界面?huì)令用戶困惑不解,那么它的價(jià)值也大打折扣。
圖2. 雖然兩個(gè)VI的功能并無區(qū)別,然而秒表外形的控件讓用戶更容易識(shí)別出其跑秒功能
下面介紹三個(gè)LabVIEW技巧,幫助您改進(jìn)程序,使它擁有外觀和功能都更加優(yōu)秀的UI。
1. 自定義UI外觀
改進(jìn)UI外觀最簡(jiǎn)單的方式是利用其他元素替代LabVIEW默認(rèn)的灰色前面板背景以及“新式控件面板”。只要簡(jiǎn)單改變前面板的背景顏色、利用外部資源圖片美化您的UI、或者只用簡(jiǎn)單利用系統(tǒng)控件模板,無需投入大量時(shí)間進(jìn)行自定義您就可以獲得獨(dú)一無二的界面外觀了。另外,系統(tǒng)輸入控件和顯示控件對(duì)大多數(shù)用戶來說都是非常熟悉的,因?yàn)樗鼈兪菍iT設(shè)計(jì)成具有操作系統(tǒng)風(fēng)格的。這使得用戶能夠快速熟悉功能,因而更具有易用性。
自定義控件增加了豐富性和靈活性。使用LabVIEW控件編輯器,您可以剖析每個(gè)控件,對(duì)組成控件的每個(gè)底層圖形組成部分進(jìn)行分離和修改。這一技巧令每一個(gè)控件更加風(fēng)格化、易于識(shí)別,或者更加能表現(xiàn)它們所表示的現(xiàn)實(shí)世界信號(hào)。從給按鈕添加模型貼圖到修改儀表背景圖片,控件自定義是改進(jìn)LabVIEW UI外觀最受歡迎的一種方式。
2. 合理組織復(fù)雜UI
然而,伴隨著您的應(yīng)用程序功能范圍的擴(kuò)大,您不得不經(jīng)常在您的LabVIEW前面板增加大量的顯示信息。幸運(yùn)的是,如果不要求同時(shí)顯示所有的控件,LabVIEW有兩個(gè)簡(jiǎn)單的技巧可以簡(jiǎn)化處理復(fù)雜UI的工作。
選項(xiàng)卡(Tab)控件是一個(gè)常用的UI組件,它可以有效地將UI功能封裝成幾個(gè)不同的部分。它們簡(jiǎn)單易用,并且比大多人想象的更為靈活。在您的前面板添加一個(gè)選項(xiàng)卡控件,然后將其它輸入和顯示控件填充到選項(xiàng)卡,您可以增加和刪減選顯卡個(gè)數(shù),改變選顯卡的透明度,選擇選顯卡的物理位置以垂直顯示分類,甚至您還可以給選顯卡添加圖片。
然而,利用選項(xiàng)卡雖然獲得了易用性,卻犧牲了擴(kuò)展性。因?yàn)橛脩麸@示器的尺寸的緣故,添加的選顯卡控件的數(shù)目是有限的。在進(jìn)行開發(fā)前您應(yīng)該仔細(xì)考慮這一細(xì)節(jié)。另外,雖然大多數(shù)內(nèi)容不可見,但選項(xiàng)卡控件會(huì)一次性加載所有輸入和顯示控件到內(nèi)存中。這可能會(huì)對(duì)程序的性能產(chǎn)生不利影響。
一個(gè)可擴(kuò)展的UI組織方法是使用LabVIEW子面板技術(shù)。利用子面板,您可以創(chuàng)建無數(shù)的子VI,從而可以在適當(dāng)?shù)臅r(shí)候動(dòng)態(tài)地將特定子VI內(nèi)容填充到子面板控件中。利用LabVIEW子面板,您可以決定何時(shí)將顯示內(nèi)容加載到內(nèi)存或釋放掉,這使得您可以更好對(duì)程序進(jìn)行控制。
3. 程序運(yùn)行緩慢時(shí)告知用戶
沒有什么比遇到很少進(jìn)行大量長(zhǎng)時(shí)間運(yùn)算的程序卡死了更令人難受了。對(duì)一個(gè)長(zhǎng)時(shí)間的操作,及時(shí)告知用戶它的開始、結(jié)束和進(jìn)行中等的信息是十分重要的。
LabVIEW 自帶了繁忙鼠標(biāo)和進(jìn)程條控件,在程序后臺(tái)處理任務(wù)時(shí),這些控件可以方便地通知用戶。當(dāng)您知道程序執(zhí)行的詳細(xì)流程時(shí)—例如各種For循環(huán)的頻繁迭代—使用系統(tǒng)水平進(jìn)度條是一個(gè)很有效的選擇。
您的應(yīng)用程序在用戶第一次啟動(dòng)時(shí)可能會(huì)有一個(gè)長(zhǎng)時(shí)間的加載過程。您可以制作一個(gè)啟動(dòng)畫面,在獲知加載過程的同時(shí)讓您的用戶知道您的程序已經(jīng)成功啟動(dòng)了。通過利用前面板透明度和居中開機(jī)畫面,LabVIEW只需對(duì)少數(shù)屬性稍作修改,就可以十分方便地完成一個(gè)專業(yè)的產(chǎn)品。
圖3. 您可以輕松創(chuàng)建和使用啟動(dòng)畫面以實(shí)現(xiàn)在緩慢加載時(shí)通知用戶的功能