メインのプログラムから GUI を起動し、パラメータなどの入力を終えた後でプログラムを再開したい場合、uiwait および uiresume を使用します。
・uiwait
・uiresume
簡単なサンプルをページ上部からダウンロードすることができます。
動作を確認するには、2 つのファイルを現在のフォルダに保存後、以下のコマンドを実行します。
>> main
GUI が起動したら、適当な値をエディットボックス内に入力し、プッシュボタンを押下します。
これにより、エディットボックス内の値がコマンドウィンドウ上に表示されます。
コーディングのポイント
1. GUI からメインコードに受け渡したい変数 T は、GUI の外部からも参照できるようにするため、あらかじめ
パブリックプロパティとして登録しています。
登録方法などの詳細については、以下の URL をご参照ください。
2. GUI の startupFcn コールバックを追加し、uiwait を記述しています。
% Code that executes after component creation
function startupFcn(app)
uiwait(app.UIFigure) % GUI を起動した時にプログラムを一時停止させる
end
3. GUI のプッシュボタンを押下することで、メインコードに戻すためにプッシュボタンのコールバック関数(ButtonPushed) にuiresume を記述しています。その前に、パブリックプロパティとして定義した T に値を代入しています。
% Button pushed function: Button
function ButtonPushed(app, event)
app.T = app.EditField.Value; % パラメータをパブリックプロパティに代入
uiresume(app.UIFigure) % コードの再開
end
4. メインのコードでは、GUI に出力引数を付けて起動し、パブリックプロパティに登録した変数を取得したのちに、close で GUI 画面を閉じます。
%%% script main.m %%%
disp('Launch GUI')
h = app_select; % GUI を出力引数付きで起動
T = h.T; % パブリックプロパティの値を取得
close(h.UIFigure) % GUI を閉じる
disp(['param T: ',num2str(T)])