<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 如何使用設(shè)計(jì)LabVIEW高級(jí)用戶界面簡(jiǎn)介

          如何使用設(shè)計(jì)LabVIEW高級(jí)用戶界面簡(jiǎn)介

          作者: 時(shí)間:2012-10-10 來(lái)源:網(wǎng)絡(luò) 收藏

          目錄

          本文引用地址:http://www.ex-cimer.com/article/193087.htm

          UI設(shè)計(jì):失傳的藝術(shù)?

          1. 自定義UI外觀

          2. 合理組織復(fù)雜UI

          3. 程序運(yùn)行緩慢時(shí)告知用戶

          更多相關(guān)資源

          如果您仍然還在默認(rèn)的灰色前面板上填充各種新式或經(jīng)典控件,那么您甚至還沒(méi)有真正觸及到(UI)的設(shè)計(jì)。

          如果說(shuō)架構(gòu)合理、功能完備的程序框圖好比三明治的夾肉,那么漂亮而實(shí)用的UI則是那上下兩層面包。也許您會(huì)問(wèn)它是必不可少的嗎?也許不是的,但是這是這一外觀讓它與眾不同。

          小改變帶領(lǐng)您一步步設(shè)計(jì)出更加漂亮和易用的UI

          圖1. 小改變帶領(lǐng)您一步步設(shè)計(jì)出更加漂亮和易用的UI

          UI設(shè)計(jì):失傳的藝術(shù)?

          如果您咨詢NI 開(kāi)發(fā)者他們使用最愛(ài)它的哪一特性,大家會(huì)給您各種各樣的回答,比如可以方便處理現(xiàn)實(shí)世界中的信號(hào),或者使用高級(jí)工具獲得效率提升,又或者是圖形化數(shù)據(jù)流非常自然的的編程方式。開(kāi)發(fā)者往往忽略了的“圖形化”這一優(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ì)令用戶困惑不解,那么它的價(jià)值也大打折扣。

          22.jpg

          圖2. 雖然兩個(gè)VI的功能并無(wú)區(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)控件模板,無(wú)需投入大量時(shí)間進(jìn)行自定義您就可以獲得獨(dú)一無(wú)二的界面外觀了。另外,系統(tǒng)輸入控件和顯示控件對(duì)大多數(shù)用戶來(lái)說(shuō)都是非常熟悉的,因?yàn)樗鼈兪菍iT(mén)設(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)行開(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í)告知用戶

          沒(méi)有什么比遇到很少進(jìn)行大量長(zhǎng)時(shí)間運(yùn)算的程序卡死了更令人難受了。對(duì)一個(gè)長(zhǎng)時(shí)間的操作,及時(shí)告知用戶它的開(kāi)始、結(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í)間的加載過(guò)程。您可以制作一個(gè)啟動(dòng)畫(huà)面,在獲知加載過(guò)程的同時(shí)讓您的用戶知道您的程序已經(jīng)成功啟動(dòng)了。通過(guò)利用前面板透明度和居中開(kāi)機(jī)畫(huà)面,LabVIEW只需對(duì)少數(shù)屬性稍作修改,就可以十分方便地完成一個(gè)專業(yè)的產(chǎn)品。

          33.jpg

          圖3. 您可以輕松創(chuàng)建和使用啟動(dòng)畫(huà)面以實(shí)現(xiàn)在緩慢加載時(shí)通知用戶的功能



          關(guān)鍵詞: LabVIEW 如何使用 用戶界面

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();