コールバック関数
コールバックとは、指定したGUI要素に対して定義されたアクションが実行されたときにトリガーされる関数のことです。
コールバック関数は、uicontrol
の引数として渡され、ユーザー定義のルーチンやアクションを完了するために呼び出されます。
次の例では、押すと正弦曲線を描くpushbutton
を作成する手順を説明します。
-
button_handle
である新しい変数にuicontrol
関数を割り当てます。 -
uipanel
のハンドルを親オブジェクトのハンドルとして定義します。 -
normalized
を指定してunits
を決定します。 -
正規化された単位で、位置
[0.02 0.05 0.2 0.05]
を割り当てます。 -
コントロールオブジェクトのスタイルを
pushbutton
として定義します。 -
Plot
のように、文字列オプションを使ってpushbutton
の名前を定義します。 -
コールバック関数を
@plot_curve
に割り当てます。 - 正弦曲線をプロットし、2つの引数を取るコールバック関数を定義します。
clear all; close all; clc;
global panel1;
function plot_function(handles,callback)
global slider_handle;
freq_value = 1;
t = [0:1/128:1];
x = sin(2*pi*freq_value*t);
plot(t,x);
end
f = figure('units','normalized','position',[0 0 0.9 0.9]);
panel1 = uipanel(f,'units','normalized','position',[0 0.1 0.99 0.89]);
axes('units', 'normalized', 'position', [0.2 0.15 0.7 0.7]);
button_handle = uicontrol(panel1,'style','pushbutton','units','normalized', ...
'position',[0.02 0.1 0.17 0.05],'string','Plot',...
'callback',@plot_function);
このコード例では、
Plot
ボタンをクリックすると、次のような正弦曲線を表示するGUIが作成されます:
