Matlab 圖形介面(GUI) 程式設計
1 圖形控制代碼
1.1 獲得控制代碼,改變屬性
獲得圖形的控制代碼:
Hndl = plot(x, y);
返回屬性:
result=get(Hndl,’'PropertyName'’); %獲得某一個屬性
result=get(Hndl) %獲得所有屬性的結構
設定屬性:
set(handle,'PropertyName1',value1, ...);
例如:
set(Hndl,'LineWidth',4,'LineStyle','--')
Figure的控制代碼和axis的控制代碼:
get/set(gcf,'PropertyName1',… ) get/set(gca,'PropertyName1',… )
1.2 利用互動式視窗設定物件屬性
propedit(Hndl1); %指定開啟Hndl1的設定視窗
propedit; %開啟當前物件的設定視窗
(也可以使用雙擊影象物件開啟)
1.3 用set函式列出可能屬性值
set(Hndl,'LineStyle');%返回LineStyle所有可設定的值
>> [ {-} |-- | : | -. | none ]
set(Hndl); %返回所有屬性
1.4 物件的查詢
Matlab中提供了4類物件的查詢函式
l gcf 返回當前圖象的控制代碼
l gca 返回當前圖象中當前座標系的控制代碼
l gco 返回當前物件的控制代碼
l findobj 尋找指定屬性值的圖形物件:Hndls =findobj('PropertyName1',value1, ...) %查詢符合鍵值的物件.
利用滑鼠選取物件
利用內建函式waitforbuttonpress和gco/gcf可以實現用滑鼠選擇物件。Waitforbuttonpress等待滑鼠按下,左鍵按下返回0,其他任意鍵按下為1. 而gco返回的是最後一次滑鼠單擊的物件控制代碼。
1.5 預設和工廠屬性
Matlab中的物件都繼承自根物件,所以設定根物件,就能指定所有新建立的物件的預設屬性。預設屬性在屬性名前加default以識別。例如:
set(0,'DefaultFigureColor', 'y') 黃色圖象背景——所有圖象
set(0,'DefaultAxesColor', 'r') 紅色座標系背景——所有圖象中的座標軸
set(gcf,'DefaultAxesColor', 'r') 紅色座標系背景——當前圖象座標軸
set(gca,'DefaultLineStyle', ':') 只在當前座標系中設定預設線型為虛線
2 Axes 繪圖
在MATLAB GUI中的每一個專案(按鈕、標籤、編輯框等)都是一個圖形化元件。元件可分為三類:圖形化控制元件(按鈕、編輯框、列表、滑動條等),靜態元素(視窗和文字字串),選單和座標系,圖形化控制元件和靜態元素由函式uicontrol建立,選單由函式uimenu和uicontextmenu建立,座標系經常用於顯示圖形化資料,由函式axes建立。
Axes繪圖:
axes(handles.axes1);
cla;%清除原有的圖形
plot(rand(5));
drawnow;%強制重新整理