App Designer で作成した GUI において、マウスの操作でグラフィックスオブジェクトを動かすことはできますか?
조회 수: 13 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2019년 9월 13일
편집: MathWorks Support Team
2019년 10월 10일
App Designer を使って GUI を作成しています。
Axes 上にあるグラフィックスオブジェクトをマウス操作で動かすようなアプリケーションを作りたいのですが、方法を教えてください。
채택된 답변
MathWorks Support Team
2019년 10월 10일
편집: MathWorks Support Team
2019년 10월 10일
まず、基本的な処理の考え方については、以下の 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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 uifigure ベースのアプリ에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!