新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > LabVIEW程序設計模式(三)—用戶界面事件模式

        LabVIEW程序設計模式(三)—用戶界面事件模式

        作者: 時間:2017-01-09 來源:網(wǎng)絡 收藏
        針對基本狀態(tài)機模式的第(4~5)個問題,需要對模式進行改進。本節(jié)將一一分析這些問題對應的解決方案,并最終形成一種新的狀態(tài)機模式——用戶界面事件模式。
        1. 程序一直在占用CPU資源。
        2. 無法響應更多的前面板事件。
        熟悉LabVIEW的工程師應該能夠很容易地解決這兩個問題,在LabVIEW 7.0以后的版本中提供的事件結構(Event Structure)能夠讓我們非常便捷地處理這兩類問題。
        在LabVIEW中事件結構的使用并不是一件難事,根據(jù)事件的發(fā)出源,事件可以抽象地分為用戶界面事件和用戶自定義事件。相關的基本知識可以參考有關的書籍,這里不再闡述事件結構的使用方法。
        圖 14所示的結構稱為用戶界面事件模式,它能夠很便捷地響應各種事件并且不占用CPU的資源,這是由LabVIEW中事件結構本身的特性決定的。


        圖 14 用戶界面事件模式
        【應用3】
        本例要模擬一個簡單的畫圖板功能。它有4個功能選項:點(point)、線(line)、圓(circle)和橢圓(oval),一次完成的繪畫過程是:在畫布上單擊鼠標開始繪制→按住鼠標的同時在畫布上拖動鼠標→在畫布上放開鼠標結束繪制。
        程序的前面板如圖 15所示,由上下兩大部分組成。上面用于選擇需要畫圖的樣式,下面是畫布,右上方的X表示程序的結束。


        圖 15 畫圖板前面板
        由于系統(tǒng)需要響應鼠標在畫布上單擊、移動和釋放事件,因此使用狀態(tài)機模式是無法解決的,只能通過事件結構。因此本例將使用用戶界面事件模式實現(xiàn)上述的畫圖板功能。
        程序的背面板如圖 16所示。共有4個事件。
        1. Panel Close?:響應前面板的X動作,這是一個過濾性事件,當事件發(fā)生時并不真正關閉前面板而只是停止程序的運行。
        2. Picture :表示繪畫的開始。
        3. Picture :表示繪畫的路徑和軌跡。
        4. Picture :表示繪畫的結束,此時一定要加入事件,因為當鼠標移動到畫布的外面時就可以認為是繪畫結束了,并不需要一定要求鼠標在畫布中釋放。


        圖 16 畫圖板背面板
        Picture 事件如圖 17所示,這個步驟表示繪制的開始,每次的繪制都必須從這個步驟開始。事件分支左側的Button參數(shù)表示單擊鼠標的鍵位,只有在單擊鼠標左鍵時才被認為是合理的和有效的,當單擊其它的鍵位時并不開始繪制。在有效繪制中,需要將畫筆移動到鼠標當前單擊的位置。當選擇的畫圖模式是Line、和Point時,使用Draw point.vi函數(shù)可以在當前的位置上畫一個點并且將畫筆移動到當前位置。

        上一頁 1 2 下一頁

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 嘉峪关市| 江西省| 金乡县| 邹城市| 潮州市| 师宗县| 呼图壁县| 福贡县| 扎赉特旗| 滨州市| 玉溪市| 图木舒克市| 女性| 丰都县| 措勤县| 丘北县| 玉溪市| 轮台县| 瓮安县| 连州市| 象州县| 繁昌县| 安图县| 民和| 新密市| 长海县| 南开区| 沙洋县| 新疆| 高邮市| 大姚县| 天门市| 和静县| 萝北县| 荆州市| 九寨沟县| 赞皇县| 凉城县| 隆昌县| 邢台县| 威宁|