按鈕回叫程式
(編譯及圖示摘自mathworks.com)
本例中有三個按鈕,每一個按鈕會產生不同的圖形;而這些圖形資料必須取自跳出式選單中所設定之資料。按鈕也是依據其對應之回叫程式將儲存於handles結構陣列中之資料取出,然後進行繪圖。
首先選取畫面編輯器中之 Surf 按鈕,然後令其指向M-檔案編輯器中之push button callback程式之位置。方法之一是直接由畫面編輯器中選取該元件,按右鍵後在其內容中選取 Callback之選項:
或者,亦可自檔案編輯器中之f標示下,選取pushbutton1_Callback項,游標即會指向該段之程式內容:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
在此段程式之下,必須添加下面之回叫程式內容:
% Display surf plot of the currently selected data.
surf(handles.current_data);
其他兩個相同的按鈕Mesh與Contour亦可利用同樣的方式進行修正。屬於Mesh按鈕之回收程式名稱為pushbutton2_Callback,應添加之程式為:
% Display mesh plot of the currently selected data.
mesh(handles.current_data);
於Contour按鈕之回收程式名稱為pushbutton3_Callback,應添加之程式為:
% Display contour plot of the currently selected data.
contour(handles.current_data);
終於完成!執行 GUI!
辛苦了半天,你一定想執行看看,有什麼結果,首先存檔,即可下指令執行:
>> simple_gui
在跳出式選單中,選取Membrane,然後點下Mesh按鈕,這個 GUI程式即會顯示不同的結果:
試一試其他組合,應該有更多的發現。
沒有留言:
張貼留言