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