Matlab GUI 界面设计基础(1)
matlab建立GUI有兩種方式,一種是用腳本編寫,一種是用GUIDE創建。GUIDE 編寫GUI 方便、高效、性對比較簡單。
一、創建或打開GUI
在Command 里面輸入 GUIDE ,或者在open 菜單里創建或打開 GUI(Graphical User Interface),創建的時候有幾種模板,一般默認(default)空(blank)模板。
二、編輯窗口
新建并且保存后,會生成相應的.fig文件和.m文件,在編輯界面,可以看到:
(1)、GUI 對象選擇區,
提供可供選擇的GUI對象,包括觸控按鈕、靜態文本、slider、edit、table、彈起式菜單、panel、axes 等。
(2)、GUI 工具欄,
包括對齊、編輯等工具。
(3)、GUi 布局區,
用來安排GUI對象的位置,大小等;設置figure是否可變,是否顯示網格、參考線等。
(4)、對齊工具,
用來對齊布局區的各個UI對象。
(5)、菜單編輯器,
用來建立菜單欄(Menu Bar)和右鍵菜單(Context Menu),用戶創建的菜單在標準彩電之后。
(6)、屬性查看器
用來查看、設置或修改對象的屬性。
(7)、對象瀏覽器
可以查看當前設計階段的所有GUI對象及其組織關系。
三、GUI控件
除去菜單外,所有常用的對象均在GUI 對象選擇區可以看到一共14個,包括
(1)、uicontrol對象:push button, slider, radio button, check box, edit text, static text, Pop-up menu, listbox, toggle button,
(2)、UI對象:panel, button group
(3)、數據可是化處理:table,axes
(4)、界面美觀:activeX control
控件的主要屬性包括:
a、控件風格和外觀
(1)BackgroundColor:設置控件背景顏色,
(2)CData:在控件上顯示的真彩色圖像。
(3)ForegroundColor:文本顏色。
(4)String屬性:控件上的文本。
(5)Visible:控件是否可見。
b、對象的常規信息
(1)Enable屬性: 表示此控件的使能狀態,設置為on”,表示可選,為“off”時則表示不可選。
(2)Style:控件對象類型。
(3)Tag:控件表示(用戶定義)。
(4)TooltipString屬性:提示信息顯示。當鼠標指針位于此控件上時,顯示提示信息。
(5)UserData:用戶指定數據。
(6)Position:控件對象的尺寸和位置。
(7)Units:設置控件的位置及大小的單位
(8)有關字體的屬性,如 FontAngle, FontName等。
c、控件回調函數的執行
(1)BusyAction:處理回調函數的中斷。有兩種選項:即Cancel:取消中斷事件,queue:排隊(默認設置)。
(2)ButtonDownFcn屬性:按鈕按下時的處理函數。
(3)CallBack屬性:是連接程序界面整個程序系統的實質性功能的紐帶。該屬性值應該為一個可以直接求值的字符串,在該對象被選中和改變時,系統將自動地對字符串進行求值。
(4)CreateFcn:在對象產生過程中執行的回調函數。
(5)DeleteFcn:刪除對象過程中執行的回調函數。
(6)Interruptible屬性:指定當前的回調函數在執行時是否允許中斷,去執行其他的函數。
d、控件當前狀態信息
(1)ListboxTop:在列表框中顯示的最頂層的字符串的索引。
(2)Max:最大值。
(3)Min:最小值。
(4)Value:控件的當前值。
四、回調函數
在控件上右鍵,選擇CALLBACK,可以看到不同的函數,單擊選擇,會自動跳轉到M文件下,GUIDE會自動生成 相應的函數體,函數名,名稱一般是 控件 Tag+ Call類型名 參數有三個 ( hObject, eventdata, handles)
其中 hObject 為當前對象的句柄,eventdata為附加數據結構,handles為所有對象的句柄。
CreateFcn 是在控件對象創建的時候發生(一般為初始化樣式,顏色,初始值等)
DeleteFcn 實在空間對象被清除的時候發生
ButtonDownFcn和KeyPressFcn分別為鼠標點擊和按鍵事件
CallBack為一般回調函數,因不同的控件而已異。例如按鈕被按下時發生,下拉框改變值時發生,sliderbar 拖動時發生等等。
參考:
1、羅華飛,MATLAB GUI 設計學習手記(第三版),2014.08
2、http://blog.csdn.net/u012374012/article/details/42582757
總結
以上是生活随笔為你收集整理的Matlab GUI 界面设计基础(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多变异位自适应遗传算法(MMAdapGA
- 下一篇: C/C++输入输出函数(I/O)总结