App Designer で作成した GUI において、マウスの操作でグラフィックスオブジェクトを動かすことはできますか?
13 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 13 Sep 2019
Modifié(e) : MathWorks Support Team
le 10 Oct 2019
App Designer を使って GUI を作成しています。
Axes 上にあるグラフィックスオブジェクトをマウス操作で動かすようなアプリケーションを作りたいのですが、方法を教えてください。
Réponse acceptée
MathWorks Support Team
le 10 Oct 2019
Modifié(e) : MathWorks Support Team
le 10 Oct 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur uifigure ベースのアプリ dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!