App Designer LIST BOX data type

18 views (last 30 days)
M G
M G on 13 May 2018
Commented: M G on 20 May 2018
I am trying to use a LIST BOX in App Designer, to assign one of several different values to a variable. For example, to assign a value to "Density", given a choice of several different metals.
This seemed straightforward but I am getting an error message.....
"Error using matlab.ui.control.internal.model.AbstractNumericComponent/set.Value (line 110) 'Value' must be a double scalar."
What is the default data type of a LIST BOX value, and is there a way to change that value to "Double Scalar"
  1 Comment
M G
M G on 13 May 2018
BTW: I have found this reply to a similar question.....
https://stackoverflow.com/questions/45122921/numerical-values-associated-with-drop-down-options/45126393#45126393
However, this "answer" applies to UIFigures created programmatically, not within the App Designer framework. It may, however, offer a hint to somebody out there who is more familiar with both App Designer and programmatic UIFigures

Sign in to comment.

Answers (1)

Chris Portal
Chris Portal on 14 May 2018
Edited: Chris Portal on 14 May 2018
The type for the Value property depends on how you've configured the listbox. There are basically 2 scenarios:
  1. Using Items Property Only: If you only configure the Items property, then the Value property needs to be one of the elements of the Items property. In this case, the type for the Value property is a character vector.
  2. Using Items and ItemsData Properties: If you configure both the Items and ItemsData properties, then the listbox will continue to visually present what the Items property has, but the Value property is required to be one of the values contained in ItemsData, whatever type that happens to be. (In this case, it's recommended that both Items and ItemsData be the same length. If they're not, the property reference page describes what the resulting behavior is.)
I'm not sure which scenario you're in, but you can find examples for both in the doc:
  5 Comments
Chris Portal
Chris Portal on 20 May 2018
Ah, your pictures on the other post helped. It looks to be a bug in the way the editor is converting your entry. I've logged this issue with the team. As a workaround, you can do this (for either listbox or dropdown):
  1. Clear Out ItemsData: In the property editor for your listbox, delete what you've entered for ItemsData.
  2. Create a StartupFcn: In Design View, right click on an empty part of the figure region, go to Callbacks, and select Add StartupFcn Callback.
  3. Configure ItemsData: In Code View, add a line of code to your StartupFcn callback that configures the ItemsData property as you need. Something like:
app.ListBox.ItemsData = [1 2 3 4];
Hope this gets you going!
M G
M G on 20 May 2018
Chris: Thanks for your Answer.
First of all, it is great to know that this is a systemic (bug) problem and not the result of a misunderstanding or insanity on my part!
I had the concept that, if only one could define the data type elsewhere (at start-up)the App would run, but it didn't make sense to me that a fundamental bug like this would still be in App Designer (not a newly introduced package...) and that I'd be the first one to find it. So I spent a lot of energy re-tracing every bit of documentation I could find.
I've not tested your stop-gap solution yet, as I've run to the end of my MatLab trial period and have yet to purchase a License. But as soon as that is in place I will give it a go!

Sign in to comment.

Categories

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!