matlab GUI 设计 自学笔记
圖形用戶界面(Graphical User Interface,GUI):
用戶與計算機進行信息交流的窗口。
設計圖形用戶界面的方法
調用建立用戶界面控件的函數
使用MATLAB提供的GUIDE工具進行可視化設計
控件對象及其操作
(1)常用控件
輸入和輸出類控件:編輯框、靜態文本、列表框、滑動條等。
實施確認、選擇操作類控件:按鈕、雙位按鈕、單選按鈕、復選框等
(2)建立控件對象
函數uicontrol用于建立控件對象,其調用格式為:
句柄變量=uicontrol(圖形窗口句柄,屬性1,屬性值1,屬性2,屬性值2,…)
其中,屬性及其取值決定了控件的特征。若省略圖形窗口句柄,默認
在當前圖形窗口建立控件對象。
(3) 控件對象的基本控制屬性
Style屬性:定義控件對象的類型,例如‘pushbutton’表示按鈕對 象,'edit’表示編輯框,等等。
String屬性:定義控件對象的說明文字。
Tag屬性:標識控件對象。
Enable屬性:控制控件對象是否可用。
Position屬性:定義控件對象的位置,其取值形式為[x,y,w,h]。
Callback屬性:其屬性值是描述命令的字符串或函數句柄,當選中控 件時,系統將自動執行字符串描述的命令或調用句柄所代表的函數, 實施相關操作。
(4)回調函數
回調函數定義對象怎樣處理信息并響應某事件。
回調函數的定義格式:
function 函數名(source, eventdata) …… end
其中,參數source是發生事件的源控件對象句柄,eventdata存儲事件數據。
(5)例子1
例1 在圖形窗口中建立三個按鈕對象,當單擊按鈕時分別繪制正弦曲 線、顯示或隱藏坐標軸的網格、清除坐標軸的圖形。
菜單對象
(1)建立菜單對象
uimenu函數用于創建、設置、修改菜單。
建立一級菜單項的函數調用格式為:
一級菜單項句柄=uimenu(圖形窗口句柄,屬性,屬性值1,屬性2,屬性值2,…)
建立子菜單項的函數調用格式為:
子菜單項句柄=uimenu(上級菜單項句柄,屬性1,屬性值1,屬性2,屬性值2,…)
(2)菜單屬性
Label屬性:定義菜單項的名字。
Accelerator屬性:定義菜單項的快捷鍵。
Checked屬性:指示菜單項是否已選中。
Enable屬性:控制菜單項的可選擇性。
Separator屬性:在菜單項上方添加一條分隔線。
(3)例子2
在例1的界面中添加“圖形選項”菜單項,其中包括一個二級菜 單項“線型”,其下又有3個子菜單項,分別為“實線”、“虛線”、 “雙劃線”。
首先運行例1的程序生成圖形界面,再 運行例2程序,在界面中添加“圖形選 項”菜單項,這時“線型”菜單項不 可用,單擊“繪圖”按鈕繪制正弦函 數曲線后“線型”菜單項變為可用, 這時可以改變線型,例如雙劃線.
新建一個m文件第一次運行他 ha= axes('Units','pixels','Position',[40,40,360,360]); ptgrid=uicontrol('Style','pushbutton',...'String','網格', 'Position', [450,120,48,20],...'Callback','grid' ); btncla = uicontrol('Style', 'pushbutton', ...'String', '清除','Position', [450,80,48,20],...'Callback','cla' ); btnplot = uicontrol('Style', 'pushbutton', ...'String','繪圖','Position', [450,160,48,20]); %設置“繪圖”按鈕的Callback屬性值是plot_sin函數句柄。 btnplot.Callback=@plot_sin;新建一個m文件第二次運行他 hopt=uimenu(gcf,'Label','圖形選項','Accelerator','L'); hLStyle=uimenu(hopt,'Label','線型','Tag','LStyle', 'Enable','off'); hL_Solid=uimenu(hLStyle,'Label','實線',...'Tag','Solid','Callback', @MLine_Type); hL_Dotted=uimenu(hLStyle,'Label','虛線',...'Tag','Dotted','Callback', @MLine_Type); hL_Dashed=uimenu(hLStyle,'Label','雙劃線',...'Tag','Dashed','Callback', @MLine_Type);新建回調函數文件MLine_Type.m function MLine_Type(source,callbackdata)hline=findobj('Type','line');if strcmp(source.Tag,'Solid' )==1hline.LineStyle='-';elseif strcmp(source.Tag,'Dotted' )==1hline.LineStyle=':'; elseif strcmp(source.Tag,'Dashed' )==1hline.LineStyle='--'; end end修改回調函數文件plot_sin.m function plot_sin(source, callbackdata)t=-pi:pi/20:pi;plot(t,sin(t));h1=findobj('Tag','LStyle');h1.Enable='On'; %使得 “線型”菜單項可用 end本人覺得一些常用的函數
gcf返回當前Figure對象的句柄值
h = findobj(‘PropertyName’,PropertyValue,…)
返回所有屬性名為‘PropertyName’,屬性值為’PropertyValue’的圖形對象的句柄。可以指定多個屬性/值對
在當前坐標下查找所有直線對象:
h = findobj(gca,‘Type’,‘line’) %gca為當前坐標的句柄
matlab自帶用戶界面設計工具GUIDE
GUIDE:Graphical User Interface Development Environment
圖形界面設計窗口
(1)打開GUIDE
在MATLAB命令行窗口輸入guide命令。
在MATLAB主窗口中選擇“主頁”選項卡,單擊工具欄的“新建”命令按
鈕,再選擇“應用程序”下的GUIDE命令
(2)圖形用戶界面設計模板
Blank GUI (Default)
GUI with Uicontrols
GUI with Axes and Menu
Modal Question Dialog
(3)圖形用戶界面設計窗口
圖形用戶界面設計窗口由菜單欄、 工具欄、組件選項板、界面設計區、狀 態欄等部分組成。
(4)圖形用戶界面設計工具
對齊對象工具
菜單編輯器
Tab鍵順序編輯器
工具欄編輯器
代碼編輯器
對象屬性檢查器
對象瀏覽器
對象屬性檢查器是用于檢查/修改對象屬性的工具。
菜單編輯器
菜單編輯器構成
工具欄
菜單列表
菜單屬性面板
圖形窗口的MenuBar屬性
figure
none
菜單編輯器 添加自定義菜單
新建菜單 新建菜單項 設置菜單項屬性
對象瀏覽器
對象瀏覽器用于查看圖形對象和展示界面的組織架構
回調屬性與回調函數
(1)回調屬性
Callback屬性:按鈕類控件和菜單項的單擊事件的默認回調屬性。
CreateFcn屬性:定義創建圖形對象的響應。
DeleteFcn屬性:定義取消圖形對象的響應。
ButtonDownFcn屬性:定義單擊鼠標鍵按下的響應。
KeyPressFcn屬性:定義鍵盤鍵按下的響應。
SelectionChangeFcn屬性:定義改變選項的響應
(2)回調函數框架
function 對象標識_Callback(hObject, eventdata, handles)
其中,hObject為發生事件的源控件,eventdata為事件數據,handles保
存圖形界面中所有對象的句柄。
總結
以上是生活随笔為你收集整理的matlab GUI 设计 自学笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php ip2long bug,PHP代
- 下一篇: 深圳linux测试题库,Linux认证考