LabVIEW控件——前面板對象
控件作為前面板上的對象有自己的獨特的外觀,同時引導圖形化語言中的數據在前面板和程序框圖中進行交換,并具有確定性的數據類型。這些對象還具有極其豐富的屬性節點和方法節點以及可自定義的控件類型,這些輔助功能將使得程序設計變得更加靈活和方便。
正是由于控件——前面板上的對象,在圖形化語言中表現出了重要的一些特性,所以我們不得不將其單獨的列為一章來進行討論。因為控件將涉及或影響到圖形化語言中的很多概念。比如控件的基本性質是什么?它是否屬于文本語言中的變量?圖形化語言的數據類型等等。
當然,本章中的內容是否正確,完全屬于個人的看法和觀點,同時也期待與大家共同交流和討論。
關于控件的更高級特性,比如屬性節點和方法節點、Xcontrol等,我們將另辟章節專門討論。
控件的基本特征
控件作為前面板上的對象,自身有許多基本特征,比如它的外觀和樣式、指向性(方向性)、在程序框圖中的映射、靜態屬性、存放數據等等。這些特性是基于圖形化語言和虛擬儀器的需要所高度抽象出來的。
3.1.1 控件的外觀和樣式
控件作為前面板上實實在在的對象具有它自己獨特的形狀、色彩和大小?;趫D形化語言和虛擬儀器的需要,前面板上的控件都具有物理意義鮮明的外觀。
這種將控件以直觀、形象化來表示的方法是圖形化語言所特有的。這樣做的目的是:第一,可以滿足圖形化語言拖拽式編程操作的需要;第二,這種直觀、形象化的 表示方法是工程師和科學家都能夠直接理解的,且滿足虛擬儀器的需要。比如,旋鈕、滑動桿、開關、量表等等,參見下圖。

圖 3-1 直觀、形象化物理意義鮮明的控件外觀
即便是LabVIEW的初學者或學生,看到這些直觀、形象化物理意義鮮明的控件也絕對不會感到很陌生。當然,這也是圖形化語言能夠十分非常貼近用戶的特點之一,同時也大大降低了程序設計中的復雜度。
依據操作系統平臺特性,LabVIEW中提供的控件共有三種樣式:新式、系統和經典。
樣式不同的控件會使它們的外觀略有差異。用戶可以根據自己的喜好來選擇不同樣式控件進行前面板的設計。
下面以數值輸入控件為例來看看它們在不同樣式下的外觀,參見下圖。
依據操作系統平臺特性,LabVIEW中提供的控件共有三種樣式:新式、系統和經典。
樣式不同的控件會使它們的外觀略有差異。用戶可以根據自己的喜好來選擇不同樣式控件進行前面板的設計。
下面以數值輸入控件為例來看看它們在不同樣式下的外觀,參見下圖。

圖 3-2 樣式不同的數值輸入控件
控件的樣式僅僅是外觀存在著某些差異嗎?其實不然,通過下面的例子就會進一步了解到其它的不同之處。
例3-1 控件的樣式
上圖中控件的背景都是白色的,如果我們期待改變它們的背景色,比如紅色,可以利用控件的屬性節點來程控的改變它們的背景色,具體的程序框圖可參見下圖。
例3-1 控件的樣式
上圖中控件的背景都是白色的,如果我們期待改變它們的背景色,比如紅色,可以利用控件的屬性節點來程控的改變它們的背景色,具體的程序框圖可參見下圖。

圖 3-3 例3-1控件的樣式
如果運行這個程序,會出現“錯誤1131的提示:無法使用系統控件的這一屬性”。也就是說系統樣式的數值輸入控件不能使用這個屬性。該例表明,樣式不同的 控件不僅僅是外觀上有所差別,其中有些屬性并不支持所有樣式的控件。這是我們在應用中遇到的一個具體問題,所以今后對于系統控件的使用還需多加小心。
前面板新式控件的子類有:數值控件;布爾控件;字符串與路徑;數組、矩陣、簇;列表、表格;圖形;下拉列表控件與枚舉控件;容器控件;I/O控件;變體與類;修飾控件和引用句柄控件等等。
系統和經典樣式的控件的子類要比新式樣式的少些。
前面板新式控件的子類有:數值控件;布爾控件;字符串與路徑;數組、矩陣、簇;列表、表格;圖形;下拉列表控件與枚舉控件;容器控件;I/O控件;變體與類;修飾控件和引用句柄控件等等。
系統和經典樣式的控件的子類要比新式樣式的少些。
3.1.2 控件的指向性
前面,在談到前面板對象時,我們所使用的都是控件這個詞。其實,我們前面所談到的控件是所有控件的一個統稱。因為在圖形化語言中,基于數據流運行機制的需 要,前面板控件包含了兩種形式,一種是輸入控件,另一種是顯示控件。也就是說,前面板控件被分成輸入控件和顯示控件兩種。對于輸入控件它只能提供(發出) 數據而不能接收數據;而對于顯示控件只能接收數據而不能提供數據??丶倪@個特征被我們稱為:控件的指向性。
控件為什么會具有指向性?為什么會分為輸入控件和顯示控件?其實這是圖形化語言數據流運行機制所決定的,也是圖形化語言的一個顯著特點。前面板上的輸入控 件相當于程序中的數據來源,便于用戶或其它節點直接進行數據輸入操作;而顯示控件相當于程序的數據終端,便于將最終的處理結果顯示給用戶。比如,在例 2-1中,我們就是將字符串常數(也可以是字符串輸入控件)通過連線發送到字符串顯示控件。
處于編程方便的考慮,被放置在前面板上的輸入控件很容易改變為顯示控件或常數(常數不是控件),鼠標右鍵選擇快捷菜單中的“轉換為顯示控件”,反之亦然。 但是,無論怎樣變換控件的指向性,它們在前面板上最終的使用功能必須是唯一確定的。要么是輸入控件要么是顯示控件,決不可能二者間有之。換言之,對任何一 個控件而言,它都不可能同時具備輸入控件和顯示控件的特征。
前面板上控件的指向性有的可以從外觀上分辨出來,有的則無法分辨出來。圖3-1所示的控件從外觀上就無法分辨出來是輸入控件還是顯示控件。有些數值控件可以通過背景色的深淺可以看出它的指向性。
在圖形化程序設計時,一般我們將輸入控件集中放置在前面板的左邊,而將顯示控件集中放置在前面板的右邊。這樣更容易區分控件的指向性,包括子VI的前面板和連線板也都基本遵循這樣的設計原則。
控件為什么會具有指向性?為什么會分為輸入控件和顯示控件?其實這是圖形化語言數據流運行機制所決定的,也是圖形化語言的一個顯著特點。前面板上的輸入控 件相當于程序中的數據來源,便于用戶或其它節點直接進行數據輸入操作;而顯示控件相當于程序的數據終端,便于將最終的處理結果顯示給用戶。比如,在例 2-1中,我們就是將字符串常數(也可以是字符串輸入控件)通過連線發送到字符串顯示控件。
處于編程方便的考慮,被放置在前面板上的輸入控件很容易改變為顯示控件或常數(常數不是控件),鼠標右鍵選擇快捷菜單中的“轉換為顯示控件”,反之亦然。 但是,無論怎樣變換控件的指向性,它們在前面板上最終的使用功能必須是唯一確定的。要么是輸入控件要么是顯示控件,決不可能二者間有之。換言之,對任何一 個控件而言,它都不可能同時具備輸入控件和顯示控件的特征。
前面板上控件的指向性有的可以從外觀上分辨出來,有的則無法分辨出來。圖3-1所示的控件從外觀上就無法分辨出來是輸入控件還是顯示控件。有些數值控件可以通過背景色的深淺可以看出它的指向性。
在圖形化程序設計時,一般我們將輸入控件集中放置在前面板的左邊,而將顯示控件集中放置在前面板的右邊。這樣更容易區分控件的指向性,包括子VI的前面板和連線板也都基本遵循這樣的設計原則。
3.1.3 控件的映射
作為前面板上的對象,每個放置在前面板上的控件(裝飾控件除外)都會在程序框圖上自動產生一個映射——接線端,這種映射關系是一一對應的。圖3-2中的控 件在圖3-3中產生了相對應的映射關系。顯然,由于控件的指向性使得接線端也具備了相應的指向性,在圖3-3中接線端圖標上的小箭頭已經清晰的表明它們是 發送數據的輸入控件的接線端。
我們說過,在前面板上有些控件很難區分它們的指向性,可是在程序框圖中確很容易區分接線端的指向性,參見下圖。
我們說過,在前面板上有些控件很難區分它們的指向性,可是在程序框圖中確很容易區分接線端的指向性,參見下圖。

圖 3-4 接線端和控件的指向性
在上圖中,我們在前面板上放置了一個數值輸入控件(數值)和一個數值顯示控件(數值2) 。它們的外觀,通過控件的背景色可以大致區分出輸入控件(背景色淺)和顯示控件(背景色深)??墒窃诔绦蚩驁D上,我們通過接線端中的小箭頭可以確定區分出 那個是輸入控件(箭頭在右邊,表示發出數據)和那個是顯示控件(箭頭在左邊,表示接收數據)。還有一個簡單的辦法也可以幫助我們確定它們的指向性,那就接 線端圖標邊框的粗細。輸入控件接線端邊框粗些,而顯示控件接線端邊框則細些。
在上圖,我們同樣在前面板上放置了兩個滑動桿控件,其中一個為輸入控件(滑動桿)另一個為顯示控件(滑動桿2)。在前面板上我們基本上看不出它們的指向 性,可見在前面版上劃分區域(左右)進行放置是有好處的。可是在程序框圖中通過任一種方法我們都確可以確定它們的指向性。
在上圖,我們同樣在前面板上放置了兩個滑動桿控件,其中一個為輸入控件(滑動桿)另一個為顯示控件(滑動桿2)。在前面板上我們基本上看不出它們的指向 性,可見在前面版上劃分區域(左右)進行放置是有好處的。可是在程序框圖中通過任一種方法我們都確可以確定它們的指向性。
關鍵詞:
LabVIEW控件前面板對
評論