Clear Filters
Clear Filters

Interactive figure manipulation with App Designer

17 views (last 30 days)
I am in the early design stage of a GUI that involves interactive plotting (moving/adding/deleting points within graph via mouse clicks) similar to moveplot on File Exchange
I am new to App Designer, but it seems much easier to develop with than GUIDE (particularly for sharing data between callbacks and outside the GUI using the dot notation). It also supports tab groups which I plan to use, and seems better at graphically laying out UI elements and configuring them.
However, according to the manual: "Furthermore, UI figures do not support most of the interactive functionality that traditional figures support. For example, UI figures do not support printing, nor do they support mouse or keyboard interactions."
My GUI could always generate a new figure window (not uifigure), and that figure could handle the interactive stuff as in moveplot.
Another limitation I've noticed is that uilistbox (also uitextarea, uieditfield, uilabel) does not support HTML formatting whereas the uicontrol('Style','listbox'...) does (see: example). This affords much more flexibility than having to include a new textbox anytime a new font, font color, font size is required, and supports links and symbols.
I've used both GUIDE and built GUIs only from .m files in the past. App Designer intrigues me for my new design but I don't want to get burned after putting in a good amount of effort, only find out it doesn't have another feature I expected that requires another clunky workaround.
If you have experience with App Designer, are there other suggestions or warnings you could provide?

Accepted Answer

Ankita Nargundkar
Ankita Nargundkar on 21 Jun 2017
Developers are aware of lack of mouse click callback for a Figure in app designer. Html formatting is not documented feature, so is always subject to frequent changes. As a workaround, you could do individual text components created dynamically for each of the different sections of formatted text.
Marta on 13 Dec 2017
Hi Ankita.
Thanks for the reply. Could you pass on an example code for how to create components dynamically? Could we use the position of the components as a way of tracking mouse positions in the App figures?
Many thanks! Marta
Philip Tamimi-Sarnikowski
I am currently working on a GUI with the App designer. I am inquiring about the mouse click callback, as i need to register clicks on uiaxes and the specific location. Is this a feature that has been implemented since last year ? I do not seem to be able to find any documentation. Thank you in advance

Sign in to comment.

More Answers (1)

Sebastian Bech-Terkilsen
Sebastian Bech-Terkilsen on 28 Aug 2018
Hi Everyone, I encountered the same problem by trying to use imfreehand in a uifigure in an app. My workaround was to make a function outside of app designer which makes a figure pop-out which then carries the imfreehand. Then have any modifications assigned to the imfreehand be done inside the function and have your uifigure display the output image of the function.
  1 Comment
abdulla alyammahi
abdulla alyammahi on 6 Apr 2020
Hello, I would like to know how you made this happen, I have been trying and I have not been able to figure it out. Is it possible from within the app to make this pop-up appear?

Sign in to comment.


Find more on Develop uifigure-Based Apps in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!