メインのプログラムから App Designer で作成した GUI を起動し、パラメータ​を設定した後で、メイ​ンのコードに戻ること​はできますか?

조회 수: 18 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2021년 7월 20일
편집: MathWorks Support Team 2021년 8월 25일
メインプログラムで使用するパラメータを App Designer で作成した GUI 上で設定できるようにしたいと考えています。
GUI 上でパラメータを設定している最中は、メインプログラムの実行を一時停止し、GUI でパラメータを設定した後にメイン処理に戻るようにするにはどうすればいいか、教えてください​。

채택된 답변

MathWorks Support Team
MathWorks Support Team 2021년 8월 25일
편집: MathWorks Support Team 2021년 8월 25일
メインのプログラムから 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)])

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 figure ベースのアプリ에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!