MATLAB App Designer教程連載3: 如何使用Gauge,Knob,Lamp,和Toggle Switch
打開App Designer,新增的最顯眼的控制項就是Gauge, Knob,Lamp和Toggle Switch了,這節先學習它們的基本使用。
Gauge,Knob,Lamp和Toggle Switch在GUI中有什麼用處
Gauge是儀錶盤,它是一個接受外部輸入,並且在GUI中顯示讀數的控制項。在實際GUI應用中,Knob可以用來顯示MATLAB從外界搜集的模擬(Analog)的或者數字(Digital)的信號。
Knob控制項有兩種旋鈕,它們是輸出控制項,可以輸出類似Analog或者Digital信號,在實際GUI應用中,Knob用來控制外部硬體輸入。
Switch也是輸出裝置,它對應現實中的按鈕。Switch只有兩個狀態:開和關。在實際GUI應用中,Switch可以用來控制外部硬體的狀態。
如何利用Gauge,Knob,Lamp和Toggle Switch設計一個簡單的APP
本節為了簡單起見,僅僅構造一個假想的APP:
- 用Knob的輸出來控制Gauge的讀數,
- 用Switch來控制Lamp的顏色
在下節教程中,我們將舉一個更實際的MATLAB App Designer和硬體結合的例子。
本例的設計如下:首先拖拽兩個Panel,命名如圖。 從用戶體驗的角度出發,在GUI上進行明顯的分組可以幫助用戶理解控制項的用處 從視覺上可以看出,Gauge和Knob是相互關聯的控制項,而Toggle Switch和Lamp是相互關聯。
並且注意到,這裡修改了Lamp的初值顏色為黑色,表示當開關的狀態是關時,燈是黑色的。如果修改屬性的初值在教程1中 曾經提到過:需要在Code View tab中,在Component Browser中點選對應的控制項,然後在Property Browser中尋找可以允許修改的屬性,如圖:
如何用Knob控制Gauge,用Toggle Switch 控制Lamp
簡單起見,不再修改類定義中屬性的名字。直接給Knob添加ValueChanged的回調函數
在其回調函數中,直接把得到的Knob的值再賦給Gauge,達到控制儀錶盤的目的 :
function KnobValueChanged(app)n value = app.Knob.Value;n app.Gauge.Value = value ;nendn
接下來再給ToogleSwitch添加回調函數:
在其回調函數中,比較ToggleSwitch的屬性Value,如果是On,則把Lamp的顏色改成紅色,否則設成黑色:
function ToggleSwitchValueChanged(app)n value = app.ToggleSwitch.Value;n if strcmp(value,On)n app.Lamp.Color = [1,0,0] ; n elsen app.Lamp.Color = [0,0,0];n endnendn
最後實際效果如下,滑鼠把Knob的值拖動到16,Gauge的值隨即也改到16;點擊Toggle Switch成為On狀態,Lamp的顏色變成紅色。
本節的例子僅為了簡單說明Knob,Gauage,Toggle Swith和Lamp的簡單使用,下節中我們將把這些控制項和實際的硬體結合起來。
推薦閱讀:
※各位大神,請問如何用matlab證明人耳對聲音的相位不敏感?
※MATLAB 高級數據結構連載 4 containers.Map
※如何對四旋翼飛行器進行精確的數學建模?
※漫談Simulink: 隱式和顯式的Solver
※[MATLAB R2017a 搶鮮報道] : 自動駕駛工具箱(1)