http://bilibili.com/video/BV1Ya4y1t7rZ?from=search&seid=18404440388539513689
學習要點:
- 定義回調函數的語法規則。
創建圖形用戶界面有4種方式:
- 純m語言創建。
- 命令方式(在命令行窗口敲入命令:figure);
- 通過guide命令創建(在命令行窗口敲入命令:guide);
- 通過appdesigner命令創建(在命令行窗口敲入命令:appdesigner);
其中,方法4是比較新的方法。目前matlab停止了guide的更新,以后會推廣方法4(2016及以上版本具備).
下面用純m語言創建圖形用戶界面:
代碼:
%%菜單設計 h_figure=figure; set(h_figure,'menubar','figure');
運行結果:
代碼:
%%菜單設計 h_figure=figure; set(h_figure,'menubar','none');
運行結果:
帶GUI的代碼,也是可以調試運行的,在想調試的地方設置斷點即可。
注解:
- 參數obj是二級菜單blue的句柄。
gui_lianxi.m
%----------------------------% %matlab GUI設計的練習代碼 %2021/2/12 %----------------------------% %%菜單設計 h_figure=figure; %set(h_figure,'menubar','figure'); set(h_figure,'menubar','none'); text_y='這是黃色'; text_w='這是白色'; %%用戶菜單的建立 h_menu=uimenu(h_figure,'label','&color'); h_submenu1=uimenu(h_menu,'label','&green','Callback','set(gcf,''color'',''green'')'); %這個是直接把回調函數的內容寫在這里,適合只有1行代碼的回調函數,最不推薦這種回調函數的寫法 h_submenu2=uimenu(h_menu,'label','&red'); h_submenu3=uimenu(h_menu,'label','&blue'); h_submenu4=uimenu(h_menu,'label','&yellow'); h_submenu5=uimenu(h_menu,'label','&white'); set(h_submenu2,'Callback','set_color'); % 'Callback'代表回調函數,set_color就是要定義的回調函數(set_color.m), set(h_submenu3,'Callback',@set_color_1); % 這種回調函數set_color_1.m需要有參數obj,event set(h_submenu4,'Callback',{@set_color_2,text_y});% 這種回調函數set_color_2.m 需要向回調函數傳入一些參數 set(h_submenu5,'Callback',{'set_color_3',text_w});
set(h_submenu4,'Callback',{@set_color_2,text_y});% 這種回調函數set_color_2.m 需要向回調函數傳入一些參數
注解:
這樣的回調函數最常用,傳遞一個函數,函數中傳入一些參數。
set_color.m文件:
function set_color() set(gcf,'color','red'); end
set_color_1.m文件:
function set_color(obj,event) set(gcf,'color','blue'); end
set_color_2.m文件:
function set_color(~,~,text_y) set(gcf,'color','yellow'); msgbox(text_y); end
set_color_3.m文件:
function set_color(~,~,text_w) set(gcf,'color','white'); msgbox(text_w); end