メインのプログラムから 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 Center および File Exchangefigure ベースのアプリ についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!