File Exchange

image thumbnail

Widgets Toolbox - MATLAB App Building Components

version 2.1.3 (406 KB) by Robyn Jackey
Additional app building components to efficiently develop advanced user interfaces in MATLAB


Updated 04 May 2021

From GitHub

View Version History

View license on GitHub

Widgets Toolbox helps you efficiently develop advanced user interfaces in MATLAB. Widgets combine existing control functionalities together into larger, reusable, common functionality to accelerate development of graphical user interfaces. The widgets may be used directly within App Designer

The toolbox provides additional UI controls and higher-level components that implement common building blocks needed in MATLAB apps. Components include:

Grid of buttons grouped together
List of checkboxes and labels grouped together
Color selector control
Date and time selector
File selection control, consisting of a label, edit field, and browse button
Listbox control combined with a label and a set of buttons for managing the list composition and ordering
Password field with hidden text
Progress bar indicator with time remaining and cancel button
Slider control group with labels and enable/disable checkboxes
Slider control linked to a numeric spinner and edit field
List of tasks with icons indicating status (pass, fail, running, complete, etc.)
Toolbar with advanced layout functionality that can appear like a toolstrip

This version of Widgets Toolbox is intended for NEW development of uifigure or App Designer apps starting from R2020b or newer releases.

If you have an existing MATLAB app using Widgets Toolbox 1.x content, you may also need "Widgets Toolbox (Compatibility Support)".

Planning a complex or business-critical app? MathWorks Consulting can advise you on design and architecture:

Cite As

Robyn Jackey (2021). Widgets Toolbox - MATLAB App Building Components (, GitHub. Retrieved .

Comments and Ratings (17)


Incredible work!!!!!

Robyn Jackey

@David - thanks for the feedback. I've taken note of this for my next round of improvements.


The FileSelector widget in this version of the Toolbox does not have the same "Pattern" option that the pre-uifigure Toolbox had, so it is restricted to only searching for Matlab file types and cannot be setup to only search for .CSV or .TXT files, for example. This would be a very useful thing to bring back, I was able to copy the functionality from the old toolbox into a copy of this widget to get it working for me.

Robyn Jackey

@Perry - you're absolutely right. Something went wrong in when I attempted to merge my fixes in Git, so it didn't get the promised bugfixes in 2.1.2. I've redone that and published 2.1.3, and verified it is working.


Bug Report
1. ListSelectorTwoPane callbacks do not work.
2. Can not add items to right list (ListSelectorTwoPane)
2a. Add all items to the right list
2b. Remove all items from the right list
3c. Repeat 2a and 2b

Widgets Toolbox version 2.1.2
Matlab ver. (R2021a)
Bug 1: Using script or app designer
Bug 2: Using app designer

Sean de Wolski

Robyn Jackey

Release 2.1.2 fixes the ListSelectorTwoPane callbacks

Robyn Jackey

@Achilleas - you're right, there's a problem with the callbacks on the List Selector (two pane). I will have a look.

Achilleas Vortselas

I tried icluding the dual listbox into my app, on R2021a, by drag and dropping in the App Designer, but the callbacks weren't being triggered. Assigning the callbacks inside the startupFcn didn't work either. I ended up implementing what I needed using regular listboxes and buttons, as I was pressed for time.

Achilleas Vortselas

To clarify, using R2021a, of course.

Robyn Jackey

You can now drag and drop these widgets directly from within App Designer, beginning with R2021a. You can likely also *run* any such apps in R2020b - the release when the ComponentContainer dependency was released - but you'll need R2021a to edit .mlapp files containing widgets. Also note that the property inspector in App Designer might not yet handle every widget property correctly - especially array types like array of strings or booleans. You may need to still set some properties in code such as your app's startupFcn.

Robyn Jackey

David, unfortunately it is a limitation in App Designer right now that you can't use another subclass / superclass. It needs to be written programmatically to take advantage of the wt.apps.BaseSingleSessionApp. Alternatively, you could export your App Designer app to a code file, but then there's no way to import it back into App Designer. The only way to really use it within App designer would be to copy and paste the relevant code into your App Designer file. This is on my radar though and I will push for improvements in a future release.


Robyn, is there a planned path forward for creating apps with Session data in App Designer? I see there is an +app folder included in this Toolbox but the included Single Session App base class is missing a few features the old (pre-uifigure) Toolbox had. I also don't see a way to assign inheritance with App Designer so there doesn't appear to be a way to use the new base class from this Toolbox without creating the entire app programmatically, which means I can't take advantage of App Designer's visual layout tools or compile into a Web App.

Gianluca Carnielli

David Szwer

There's a file "appDesigner.json" in the package. Does this mean we can load the widgets into the App Designer and pick them out of the Component Library, or is this only going to appear in future versions of Matlab?


Robyn Jackey

Hello everyone! This is the new Widgets Toolbox for uifigure and app designer development with new components based on the new UI Component Development capabilities introduced in MATLAB R2020b:
To include these widgets in your App Designer app, currently you must do so programmatically, for example in your app's startupFcn.

MATLAB Release Compatibility
Created with R2021a
Compatible with R2020b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!