AppDesigne​rの画面上に置いてあ​るフォームやスライダ​ーの値をリセットや復​元できるボタンを置き​たい

AppDesignerでGUIで操作できるアプリを作成しているのですが、色々分からないことがあってよろしくお願いします。
画面上には、スライダや入力フィールドやボタンを複数置いているのですが、ここにリセットや再設定(復元)ボタンを置きたいと思っています。
リセットは画面上の各コンポーネントの値をクリアで、再設定ボタンでリセット直前の操作内容を復元したいです。
(画面上は、値取得とリセットを分けていますが、最終的にはリセットボタンにまとめようと思っています)
イメージとしては、リセットボタンをおした際に、各コンポーネントに入ってる値を取得してどこかに保管しておき(テーブルを作成?)、保管後リセットして、復元ボタンをおしたときにそのテーブルを呼び出して各コンポーネントに値を入れるのかなと思いました。
まずテーブルの作成ができるのかを調べようと思って、「テーブルの作成」で検索してみたのですが、
略式テーブルの作成
形式的テーブルの作成
動的テーブルの作成・・・
と色々でてきて、どれがいいのかわかりませんでした。
そもそもテーブルとかじゃないのかもしれないですが。。。
質問がざっくりしすぎているかもしれないので、使うコマンドや関数などのヒントだけでも教えていただけますと幸いです😓
お忙しいところ恐れ入りますが、どうぞよろしくお願いいたしますm(__)m

 Accepted Answer

Hiro Yoshino
Hiro Yoshino on 24 Aug 2023
私ならですが
  1. アプリを閉じる時に変数を保存する callback を入れる (右クリックから closeRequestFcn を選択 参考)
  2. そこに格値を mat ファイルに保存する様にする (save コマンド )
a = app.a;
b = app.b;
c = app.c;
d = app.d;
e = app.d;
save("appSetting","a","b","c","d","e");
3. startup メソッドで、保存ファイルがある場合はそれを読み込んで初期値にする。無い場合は初期設定値にする。
のような処理を行うかなと思います。
アプリを閉じる時に設定を保存するかどうか?をダイアログで出したりすると便利なので、
uiconfirm 関数が便利だと思います。

6 Comments

mayu
mayu on 25 Aug 2023
Edited: mayu on 25 Aug 2023
ご教示いただきまして、ありがとうございます。
matファイルやsavaコマンドの存在を知りませんでした。
saveコマンドでワークスペースのすべての変数を、matファイルに保存できるということで、
ご教示いただいたようにやってみようと思い、作成したmatファイルの中身をみたところ下記のように出ました。
スライダやフォームに入力した値などの情報は、ここには保存されないのでしょうか。
それか見えないだけでどこかに保存されているのでしょうか。
ちゃんと取得したデータが保存されているのか気になっているのですが、見れる方法があればご教示いただけますと幸いです。
mayu
mayu on 25 Aug 2023
あともう1点すみません。
ご提示いただきましたソースコードと同じようにコードを書いたつもりなのですが、
「app のプロパティを参照するには、app.Slider3 を使用します。
のように表示されますが、書き方が間違っていますでしょうか。
コンポーネントから値を取得して、それを mat ファイルにしてはどうでしょうか?
app.Slider3.value
などしたら設定値が取れませんか?
お見せしたのはサンプルなので、そのままでは使えません。あくまでもアイディアを示しただけです。お気を付けください。
mayu
mayu on 25 Aug 2023
Edited: mayu on 25 Aug 2023
ありがとうございます。
すみません、プログラミングの知識がないので、とりあえずご提示いただいたものをそのまま実行してみました😓
valueを付けて実行してみたらこのようなエラーになったのですが、saveコマンドでは対応してないということでしょうか❓
saveは変数名だけ保存するのでしょうか(変数の中身の値までは保存できないでしょうか)
Hiro Yoshino
Hiro Yoshino on 25 Aug 2023

Slider のプロパティにvalue というものが無かっただけです。 Slider のオブジェクトのdocumentation スライダー を読んでみると、Value があるのでVを大文字にしてみると上手くいくかも知れません。

mayu
mayu on 25 Aug 2023
ありがとうございます。
大文字にしたらデータ格納できたみたいでした💦
いただいたヒントをもとに自分でももう少し考えてみます。ありがとうございました。

Sign in to comment.

More Answers (0)

Products

Release

R2021b

Asked:

on 24 Aug 2023

Commented:

on 25 Aug 2023

Community Treasure Hunt

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

Start Hunting!