1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MATLAB uifigureを使ったGUIアプリの作成例

Posted at

MATLABにはGUIアプリを作る方法がいくつかあります.

  1. App DesignerというGUIアプリケーションを使って作る
  2. コードを書いて作る

ここでは2. の方法で作ってみます.MATLABにもGUIを作るフレームワークがあります.
GUIフレームワークにも様々とパラダイムがありますが,MATLABのはPythonのtkinterと似ていると思います.

ウィンドウを作成する uifigure

fig = uifigure;
fig.Name = "MATLAB GUI Test";

こんだけで白いウィンドウが立ち上がります.
image.png

レイアウトを設定する uigridlayout

引数に親コンテナを指定します.なんかtkinterと似ていますね.

layout = uigridlayout(fig,[2 2]);

ラベルを作成する uilabel

親コンテナとしてレイアウトを指定すると,レイアウトに従って適当な場所に配置されます.

greeting_label = uilabel(layout);
greeting_label.Text = "お帰りなさい,あなた.何にする?";
greeting_label.HorizontalAlignment = "right";

スクリーンショット 2023-06-13 21.39.05.png

ドロップダウンを作成する uidropdown

dropdown = uidropdown(layout);
dropdown.Items=["ごはん","お風呂","ワ・タ・シ♡"];

image.png

グリッドの複数行・複数列に渡るレイアウト

今から下行に2列に渡ってラベルを配置したいと思うのですが,そういう時はコンポーネントのLayoutプロパティから変更ができます.例えば以下の例では1から2列目に渡ることができます.

reaction_label = uilabel(layout);
reaction_label.Text = "";
reaction_label.HorizontalAlignment = "center";
reaction_label.FontSize = 32;
reaction_label.Layout.Column = [1 2];%1から2列目に渡る.

イベントハンドリング

ここでは,ドロップダウンの選択内容に従ってラベルの文字列を変更させるようにします.

イベントハンドラは以下のような2つの引数を受け取る関数として定義されます.srcにイベントの発信元のコンポーネントが入ります.

イベントハンドラの関数
function handler(src,event)

このようなイベントハンドラを作って,当該のコンポーネントのプロパティに登録します.

ドロップダウンの選択ハンドラはValueChangedFcnプロパティに登録します.

    function on_select(src,event)
        SELECTION_TO_REACTION = dictionary( ...
            "ごはん","⊂((・⊥・))⊃", ...
            "お風呂","(*゚▽゚)ノ", ...
            "ワ・タ・シ♡","/////////" ...
        );
        reaction_text = SELECTION_TO_REACTION(src.Value);
        reaction_label.Text = reaction_text;
    end
dropdown.ValueChangedFcn = @on_select;

動作例

「ごはん」を選択
image.png
「お風呂」を選択すると,下部のラベルの内容が変わります.
スクリーンショット 2023-06-13 22.01.28.png

まとめ

以上で作ったコードをまとめます.ここでは1つの関数として包んでいます.

MATLABのGUIフレームワークについて,詳細は↓のドキュメントにアクセスして下さい.

いやあ,MATLABは何でもできますねえ...卒業しても離れられる自信がない.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?