App Designer で作成した GUI において、マウスの操作でグラフィックスオブジェクトを動かすことはできますか?
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 13 de Sept. de 2019
Editada: MathWorks Support Team
el 10 de Oct. de 2019
App Designer を使って GUI を作成しています。
Axes 上にあるグラフィックスオブジェクトをマウス操作で動かすようなアプリケーションを作りたいのですが、方法を教えてください。
Respuesta aceptada
MathWorks Support Team
el 10 de Oct. de 2019
Editada: MathWorks Support Team
el 10 de Oct. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre uifigure ベースのアプリ en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!