春風得意馬蹄疾誉简,一日看盡長安花
一、 為什么要彈出子界面盟广?
??我們在編寫上位機軟件的時候描融,一個主界面往往無法將所有的流程圖、設(shè)置選項衡蚂、報警參數(shù)等所有相關(guān)的數(shù)據(jù)信息全部展現(xiàn)出來窿克,這個時候子界面的重要性就體現(xiàn)出來了!既然是子界面毛甲,說明在軟件的使用過程中年叮,是不需要像主界面一樣呢一直在桌面長時間顯示的,只是在需要的時候玻募,彈出來就可以了只损,使用后直接關(guān)閉,對別的界面不產(chǎn)生任何影響;或者PC配備雙屏顯示時跃惫,子界面可以拖拽到副屏上長時間顯示叮叹,便于操作人員對所有信息一目了然。
??其實多界面顯示信息爆存,LabVIEW還提供了選項卡功能蛉顽,可以在一個主界面上切換不同的畫面,以顯示更多信息先较。但是像參數(shù)設(shè)置界面携冤,只在使用的時候設(shè)置一下參數(shù),使用完后就不需要了闲勺,用選項卡就不太合適曾棕;而且雙屏顯示的時候,子界面可以放在副屏上顯示菜循,選項卡卻不行翘地。這些,都是彈出子界面的優(yōu)勢癌幕!
??那么衙耕,LabVIEW到底如何才能彈出子界面呢?下面我們通過一個實例序芦,來比較詳細地討論一下臭杰。
二、實戰(zhàn)練習
??先說下我的例子大概是個什么框架谚中,既然我們要彈出子界面渴杆,那么必然會有一個主界面。我先創(chuàng)建一個主界面VI程序宪塔,然后再創(chuàng)建兩個子界面的VI程序磁奖,點擊主界面上第一個按鈕,第一個子界面就會彈出來運行某筐;再點擊第二個按鈕比搭,第二個子界面也會彈出來運行;為了方便2個子界面之間進行數(shù)據(jù)交換南誊,我還創(chuàng)建了一個全局變量身诺。項目結(jié)構(gòu)如下圖所示:
??項目瀏覽器中“主VI”對應(yīng)主界面,2個“子VI”對應(yīng)相應(yīng)的子界面抄囚,結(jié)構(gòu)還是比較簡單的霉赡,下面我們來看看具體是如何實現(xiàn)的。
①主界面(主VI)程序
??主界面(主VI)前面板比較簡單幔托,就是放了兩個確定按鈕穴亏,如下圖所示:
??主VI程序面板如下圖所示蜂挪,點擊按鈕就彈框,很明顯我們要使用事件結(jié)構(gòu)嗓化,2個按鈕對應(yīng)兩個事件結(jié)構(gòu)棠涮,兩個事件結(jié)構(gòu)的程序基本一樣(下圖中只給出了2#按鈕對應(yīng)事件結(jié)構(gòu)的程序)。
??上面的程序也比較簡單刺覆,我簡單解釋一下:首先使用“文件I/O”--“文件常量”--“路徑常量”里的路徑常量來對子VI進行調(diào)用严肪,然后就是使用“打開VI引用”,之后再判斷子VI的前面板狀態(tài)隅津;如果前面處于“Closed”狀態(tài)诬垂,就打開子VI前面板并處于標準模式狀態(tài)劲室,接著就開始運行子VI伦仍,也就是說,彈出來的子VI界面是直接進入運行狀態(tài)的很洋;如果前面不處于關(guān)閉狀態(tài)充蓝,那么就將子界面置于最頂層。主VI的程序主要用的到的控件模塊是 “應(yīng)用控制程序”模塊中的“屬性節(jié)點”和“調(diào)用節(jié)點”喉磁,如下圖所示:
??“FP”指的就是“前面板”谓苟,整個程序也比較簡單。
②子界面(1#子VI)程序
??1#子VI的前面板界面也比較簡單协怒,也就一個數(shù)值顯示框和一個停止按鈕涝焙,我們主要是為了舉例,所以能簡單就盡量簡單孕暇。
??我們在看一下1#子VI的程序面板:
??2#子VI前面板與1#子VI前面板基本一樣仑撞,就不多贅述了,程序面板稍稍有點不一樣妖滔,就是將全局變量的值賦給2#子VI的數(shù)值顯示框隧哮,從而達到將1#子界面的隨機數(shù)傳遞給2#子界面的數(shù)值顯示框。2#子VI程序面板如下圖所示:
③運行結(jié)果
??運行主VI程序座舍,然后分別點擊主VI前面板上的兩個確定按鈕沮翔,分別彈出來兩個子界面,對應(yīng)相應(yīng)的子VI程序曲秉,彈出來的子界面是自動運行的采蚀;由于全局變量將值賦給2#子界面時有延遲,所以我截圖時兩個子界面顯示的隨機數(shù)不一樣承二,實際顯示的結(jié)果時一前一后一樣的數(shù)據(jù)榆鼠,時間間隔很短,感興趣的朋友可以想想用啥辦法將延遲消除矢洲,使兩個子界面顯示的數(shù)據(jù)一摸一樣(0延遲)
三璧眠、小結(jié)
??1 .我使用的開發(fā)環(huán)境是:Win10,LabVIEW2017(32位)
??2 .其實彈出子界面的方法比較簡單,程序也比較少责静;自己動手試一試就可以完全掌握了
??3 .彈出的子界面以及主界面的顯示位置都是可以設(shè)置的袁滥,我一般將彈出的子界面設(shè)置在副屏,主界面默認在主屏顯示灾螃;顯示位置的設(shè)置在每個程序的“VI屬性”里题翻,可以根據(jù)自己的需要靈活設(shè)置。