Add row of uitable using UICONTROL

1 visualizzazione (ultimi 30 giorni)
How can increase the number of row of the uitable using uicontrol as shown on the image. I have this code but I can't find a way to make it work,
f = figure('Position',[700 200 240 200],'Name','Add Derated Unit','NumberTitle','off');
derated = uitable(f);
derated.ColumnName = {'Rating(MW)','FOR/State Probability'};
derated.RowName = [];
derated.Data = [0 0; 0 0; 0 0];
derated.Position(3) = derated.Extent(3);
derated.Position(4) = derated.Extent(4);
derated.ColumnEditable = [true true];
btn = uicontrol('Style', 'pushbutton', 'String', 'Add Row',...
'Position', [20 100 50 20], 'Callback', @add_row);
function add_row(btn, ~, derated)
data = get(derated, 'data');
data(end+1,:) = 0;
set(derated,'data',data);

Risposta accettata

Walter Roberson
Walter Roberson il 17 Nov 2017
btn = uicontrol('Style', 'pushbutton', 'String', 'Add Row',...
'Position', [20 100 50 20], 'Callback', {@add_row, derated});
  3 Commenti
Kim Lopez
Kim Lopez il 17 Nov 2017
How can I place the uitable on the topmost part of the figure so that when I add a row of the table, it will be shown it's whole table without scroll bar?
Walter Roberson
Walter Roberson il 17 Nov 2017
I recommend creating a uipanel to put the uitable into. That will make it clearer how you should position your other elements such as your uicontrol and any graphics you might have.
Then when you do create the uitable, set the uipanel as its Parent, and set Units to 'normal', and set Position to [0 0 1 1] so that it takes up the entire uipanel.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Migrate GUIDE Apps in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by