LabVIEW控件——前面板對象
控件作為前面板上的對象有自己的獨特的外觀,同時引導圖形化語言中的數(shù)據(jù)在前面板和程序框圖中進行交換,并具有確定性的數(shù)據(jù)類型。這些對象還具有極其豐富的屬性節(jié)點和方法節(jié)點以及可自定義的控件類型,這些輔助功能將使得程序設計變得更加靈活和方便。
正是由于控件——前面板上的對象,在圖形化語言中表現(xiàn)出了重要的一些特性,所以我們不得不將其單獨的列為一章來進行討論。因為控件將涉及或影響到圖形化語言中的很多概念。比如控件的基本性質(zhì)是什么?它是否屬于文本語言中的變量?圖形化語言的數(shù)據(jù)類型等等。
當然,本章中的內(nèi)容是否正確,完全屬于個人的看法和觀點,同時也期待與大家共同交流和討論。
關(guān)于控件的更高級特性,比如屬性節(jié)點和方法節(jié)點、Xcontrol等,我們將另辟章節(jié)專門討論。
控件的基本特征
控件作為前面板上的對象,自身有許多基本特征,比如它的外觀和樣式、指向性(方向性)、在程序框圖中的映射、靜態(tài)屬性、存放數(shù)據(jù)等等。這些特性是基于圖形化語言和虛擬儀器的需要所高度抽象出來的。
3.1.1 控件的外觀和樣式
控件作為前面板上實實在在的對象具有它自己獨特的形狀、色彩和大小?;趫D形化語言和虛擬儀器的需要,前面板上的控件都具有物理意義鮮明的外觀。
這種將控件以直觀、形象化來表示的方法是圖形化語言所特有的。這樣做的目的是:第一,可以滿足圖形化語言拖拽式編程操作的需要;第二,這種直觀、形象化的 表示方法是工程師和科學家都能夠直接理解的,且滿足虛擬儀器的需要。比如,旋鈕、滑動桿、開關(guān)、量表等等,參見下圖。
圖 3-1 直觀、形象化物理意義鮮明的控件外觀
即便是LabVIEW的初學者或?qū)W生,看到這些直觀、形象化物理意義鮮明的控件也絕對不會感到很陌生。當然,這也是圖形化語言能夠十分非常貼近用戶的特點之一,同時也大大降低了程序設計中的復雜度。
依據(jù)操作系統(tǒng)平臺特性,LabVIEW中提供的控件共有三種樣式:新式、系統(tǒng)和經(jīng)典。
樣式不同的控件會使它們的外觀略有差異。用戶可以根據(jù)自己的喜好來選擇不同樣式控件進行前面板的設計。
下面以數(shù)值輸入控件為例來看看它們在不同樣式下的外觀,參見下圖。
依據(jù)操作系統(tǒng)平臺特性,LabVIEW中提供的控件共有三種樣式:新式、系統(tǒng)和經(jīng)典。
樣式不同的控件會使它們的外觀略有差異。用戶可以根據(jù)自己的喜好來選擇不同樣式控件進行前面板的設計。
下面以數(shù)值輸入控件為例來看看它們在不同樣式下的外觀,參見下圖。
圖 3-2 樣式不同的數(shù)值輸入控件
控件的樣式僅僅是外觀存在著某些差異嗎?其實不然,通過下面的例子就會進一步了解到其它的不同之處。
例3-1 控件的樣式
上圖中控件的背景都是白色的,如果我們期待改變它們的背景色,比如紅色,可以利用控件的屬性節(jié)點來程控的改變它們的背景色,具體的程序框圖可參見下圖。
例3-1 控件的樣式
上圖中控件的背景都是白色的,如果我們期待改變它們的背景色,比如紅色,可以利用控件的屬性節(jié)點來程控的改變它們的背景色,具體的程序框圖可參見下圖。
圖 3-3 例3-1控件的樣式
如果運行這個程序,會出現(xiàn)“錯誤1131的提示:無法使用系統(tǒng)控件的這一屬性”。也就是說系統(tǒng)樣式的數(shù)值輸入控件不能使用這個屬性。該例表明,樣式不同的 控件不僅僅是外觀上有所差別,其中有些屬性并不支持所有樣式的控件。這是我們在應用中遇到的一個具體問題,所以今后對于系統(tǒng)控件的使用還需多加小心。
前面板新式控件的子類有:數(shù)值控件;布爾控件;字符串與路徑;數(shù)組、矩陣、簇;列表、表格;圖形;下拉列表控件與枚舉控件;容器控件;I/O控件;變體與類;修飾控件和引用句柄控件等等。
系統(tǒng)和經(jīng)典樣式的控件的子類要比新式樣式的少些。
前面板新式控件的子類有:數(shù)值控件;布爾控件;字符串與路徑;數(shù)組、矩陣、簇;列表、表格;圖形;下拉列表控件與枚舉控件;容器控件;I/O控件;變體與類;修飾控件和引用句柄控件等等。
系統(tǒng)和經(jīng)典樣式的控件的子類要比新式樣式的少些。
3.1.2 控件的指向性
前面,在談到前面板對象時,我們所使用的都是控件這個詞。其實,我們前面所談到的控件是所有控件的一個統(tǒng)稱。因為在圖形化語言中,基于數(shù)據(jù)流運行機制的需 要,前面板控件包含了兩種形式,一種是輸入控件,另一種是顯示控件。也就是說,前面板控件被分成輸入控件和顯示控件兩種。對于輸入控件它只能提供(發(fā)出) 數(shù)據(jù)而不能接收數(shù)據(jù);而對于顯示控件只能接收數(shù)據(jù)而不能提供數(shù)據(jù)??丶倪@個特征被我們稱為:控件的指向性。
控件為什么會具有指向性?為什么會分為輸入控件和顯示控件?其實這是圖形化語言數(shù)據(jù)流運行機制所決定的,也是圖形化語言的一個顯著特點。前面板上的輸入控 件相當于程序中的數(shù)據(jù)來源,便于用戶或其它節(jié)點直接進行數(shù)據(jù)輸入操作;而顯示控件相當于程序的數(shù)據(jù)終端,便于將最終的處理結(jié)果顯示給用戶。比如,在例 2-1中,我們就是將字符串常數(shù)(也可以是字符串輸入控件)通過連線發(fā)送到字符串顯示控件。
處于編程方便的考慮,被放置在前面板上的輸入控件很容易改變?yōu)轱@示控件或常數(shù)(常數(shù)不是控件),鼠標右鍵選擇快捷菜單中的“轉(zhuǎn)換為顯示控件”,反之亦然。 但是,無論怎樣變換控件的指向性,它們在前面板上最終的使用功能必須是唯一確定的。要么是輸入控件要么是顯示控件,決不可能二者間有之。換言之,對任何一 個控件而言,它都不可能同時具備輸入控件和顯示控件的特征。
前面板上控件的指向性有的可以從外觀上分辨出來,有的則無法分辨出來。圖3-1所示的控件從外觀上就無法分辨出來是輸入控件還是顯示控件。有些數(shù)值控件可以通過背景色的深淺可以看出它的指向性。
在圖形化程序設計時,一般我們將輸入控件集中放置在前面板的左邊,而將顯示控件集中放置在前面板的右邊。這樣更容易區(qū)分控件的指向性,包括子VI的前面板和連線板也都基本遵循這樣的設計原則。
控件為什么會具有指向性?為什么會分為輸入控件和顯示控件?其實這是圖形化語言數(shù)據(jù)流運行機制所決定的,也是圖形化語言的一個顯著特點。前面板上的輸入控 件相當于程序中的數(shù)據(jù)來源,便于用戶或其它節(jié)點直接進行數(shù)據(jù)輸入操作;而顯示控件相當于程序的數(shù)據(jù)終端,便于將最終的處理結(jié)果顯示給用戶。比如,在例 2-1中,我們就是將字符串常數(shù)(也可以是字符串輸入控件)通過連線發(fā)送到字符串顯示控件。
處于編程方便的考慮,被放置在前面板上的輸入控件很容易改變?yōu)轱@示控件或常數(shù)(常數(shù)不是控件),鼠標右鍵選擇快捷菜單中的“轉(zhuǎn)換為顯示控件”,反之亦然。 但是,無論怎樣變換控件的指向性,它們在前面板上最終的使用功能必須是唯一確定的。要么是輸入控件要么是顯示控件,決不可能二者間有之。換言之,對任何一 個控件而言,它都不可能同時具備輸入控件和顯示控件的特征。
前面板上控件的指向性有的可以從外觀上分辨出來,有的則無法分辨出來。圖3-1所示的控件從外觀上就無法分辨出來是輸入控件還是顯示控件。有些數(shù)值控件可以通過背景色的深淺可以看出它的指向性。
在圖形化程序設計時,一般我們將輸入控件集中放置在前面板的左邊,而將顯示控件集中放置在前面板的右邊。這樣更容易區(qū)分控件的指向性,包括子VI的前面板和連線板也都基本遵循這樣的設計原則。
3.1.3 控件的映射
作為前面板上的對象,每個放置在前面板上的控件(裝飾控件除外)都會在程序框圖上自動產(chǎn)生一個映射——接線端,這種映射關(guān)系是一一對應的。圖3-2中的控 件在圖3-3中產(chǎn)生了相對應的映射關(guān)系。顯然,由于控件的指向性使得接線端也具備了相應的指向性,在圖3-3中接線端圖標上的小箭頭已經(jīng)清晰的表明它們是 發(fā)送數(shù)據(jù)的輸入控件的接線端。
我們說過,在前面板上有些控件很難區(qū)分它們的指向性,可是在程序框圖中確很容易區(qū)分接線端的指向性,參見下圖。
我們說過,在前面板上有些控件很難區(qū)分它們的指向性,可是在程序框圖中確很容易區(qū)分接線端的指向性,參見下圖。
圖 3-4 接線端和控件的指向性
在上圖中,我們在前面板上放置了一個數(shù)值輸入控件(數(shù)值)和一個數(shù)值顯示控件(數(shù)值2) 。它們的外觀,通過控件的背景色可以大致區(qū)分出輸入控件(背景色淺)和顯示控件(背景色深)??墒窃诔绦蚩驁D上,我們通過接線端中的小箭頭可以確定區(qū)分出 那個是輸入控件(箭頭在右邊,表示發(fā)出數(shù)據(jù))和那個是顯示控件(箭頭在左邊,表示接收數(shù)據(jù))。還有一個簡單的辦法也可以幫助我們確定它們的指向性,那就接 線端圖標邊框的粗細。輸入控件接線端邊框粗些,而顯示控件接線端邊框則細些。
在上圖,我們同樣在前面板上放置了兩個滑動桿控件,其中一個為輸入控件(滑動桿)另一個為顯示控件(滑動桿2)。在前面板上我們基本上看不出它們的指向 性,可見在前面版上劃分區(qū)域(左右)進行放置是有好處的。可是在程序框圖中通過任一種方法我們都確可以確定它們的指向性。
在上圖,我們同樣在前面板上放置了兩個滑動桿控件,其中一個為輸入控件(滑動桿)另一個為顯示控件(滑動桿2)。在前面板上我們基本上看不出它們的指向 性,可見在前面版上劃分區(qū)域(左右)進行放置是有好處的。可是在程序框圖中通過任一種方法我們都確可以確定它們的指向性。
關(guān)鍵詞:
LabVIEW控件前面板對
評論