Unable to check checkboxes AppDesigner

14 views (last 30 days)
Colin Krebbers
Colin Krebbers on 20 Jun 2019
Answered: Jeremy Berke on 11 Mar 2024 at 13:52
Hi All,
Currently, I'm working on a table which will hold to numeric columns and eight logical columns (in the appeareance of checkboxes).
I've managed to create this table but unless having specified which columns of a row may be edited this does not work.
After configuring the table I set data to it, initializing each checkbox with the false status, being unchecked.
While running the app the checkboxes can be clicked, the tick appears and while releasing the mousebutton dissapears again.
Any help would be great!
Kind regards,
Colin
set(app.GCL, 'ColumnFormat', {'numeric', 'numeric','logical','logical','logical','logical','logical','logical','logical','logical'});
set(app.GCL, 'ColumnEditable', [false, true, true, true, true, true, true, true, true, true]);
newData = [m+1 0 0 0 0 0 0 0 0 0];
app.GCL.Data = [app.GCL.Data;newData];

Answers (2)

Dennis
Dennis on 20 Jun 2019
You need to set the values of your checkbox to true or false, not to 0 or 1. MWE:
t=uitable;
t.ColumnFormat={'logical'};
t.ColumnEditable=true;
t.Data=true;
  2 Comments
Colin Krebbers
Colin Krebbers on 20 Jun 2019
Hi Dennis,
Thank you for your reply!
Definitely, this would work in GUIDE, however, I'm using AppDesigner and it sadly does not.
The table is created and the row consisting out of 2 numeric fields followed by 8 checkboxes is visible, only point is that I'm not able to change the status of the checkbox accordingly.
Looking forward to your reply.
Dennis
Dennis on 21 Jun 2019
Hi,
the problem is not with your table, but with the values you try to assign to your checkboxes.
I don't see why my example should not work for appdesigner, i included a small example.

Sign in to comment.


Jeremy Berke
Jeremy Berke on 11 Mar 2024 at 13:52
I had the same problem and solved it by using a table as the table.Data property.
For example:
lowerBounds = [-20 -20 -20 -20 -20 -20 5 -1 -20 -20]';
upperBounds = [60 60 60 60 60 60 25 1 20 20]';
optimize = logical([1 1 0 1 1 1 1 0 1 1]');
app.paramTable.Data = table(optimize, lowerBounds, upperBounds);
and this solved the issue.

Categories

Find more on Develop Apps Using App Designer in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!