Unable to check checkboxes AppDesigner

5 visualizzazioni (ultimi 30 giorni)
Colin Krebbers
Colin Krebbers il 20 Giu 2019
Risposto: Jeremy Berke il 11 Mar 2024
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];

Risposte (2)

Dennis
Dennis il 20 Giu 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 Commenti
Colin Krebbers
Colin Krebbers il 20 Giu 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 il 21 Giu 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.

Accedi per commentare.


Jeremy Berke
Jeremy Berke il 11 Mar 2024
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.

Categorie

Scopri di più su Develop Apps Using App Designer in Help Center e File Exchange

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by