Interactive figure manipulation with App Designer
47 views (last 30 days)
Joris Lambrecht on 14 Jun 2017
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?
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.
More Answers (1)
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.