12/31/2006

按鈕回叫程式

(編譯及圖示摘自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程式即會顯示不同的結果:



試一試其他組合,應該有更多的發現。