App Designer で作成した GUI において、マウスの操作でグラフィックスオブジェクトを動かすことはできますか?
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 13 Sep. 2019
Bearbeitet: MathWorks Support Team
am 10 Okt. 2019
App Designer を使って GUI を作成しています。
Axes 上にあるグラフィックスオブジェクトをマウス操作で動かすようなアプリケーションを作りたいのですが、方法を教えてください。
Akzeptierte Antwort
MathWorks Support Team
am 10 Okt. 2019
Bearbeitet: MathWorks Support Team
am 10 Okt. 2019
まず、基本的な処理の考え方については、以下の URL の内容が参考になります。
・マウスの動きに合わせてグラフィックスオブジェクトを移動させることはできますか?
上記は、通常の Figure(もしくはGUIDE)による構築方法を紹介していますが、R2018b からは、UIFigure での WindowButtonDown, WindowButtonMotion, WindowButtonUp コールバックがサポートされ、また R2019a 以降では、UIAxes の CurrentPoint プロパティがサポートされていますので、同様の内容を App Designer 上でも実装することが可能です。
添付の例は、App Designer にて作成した簡単なサンプル(app1.mlapp: R2019a にて作成)です。
実行すると、ラインプロットと Patch オブジェクトが表示されます。 マウスをドラッグ&ドロップすると、Patch の右端が動き、その値が表示されます。
主な作成のポイントは以下のものです。
1) UIFigure のコールバックで startupFcn、UIFigureWIndowButtonDowm、 UIFigureWIndowButtonMotion、UIFigureWIndowButtonUp コールバックを追加します。
2) startupFcn でライン描画、Patch 描画を行います。Patch のハンドルは、あらかじめプライベートプロパティとして登録しています。
3) UIFigureWindowButtonDown コールバックでは、以下の構文を使って、 UIFigureWIndowButtonMotion コールバックを設定します。
app.UIFigure.WindowButtonMotionFcn = createCallbackFcn(app, @UIFigureWindowButtonMotion, true);
※この記述は、WindowButtonMotionFcn コールバックを追加すると同時に記載された 74行目のコードを参考にしています。
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu uifigure ベースのアプリ finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!