Добавьте новую строку между старыми строками таблицы в дизайнере приложений Matlab

После некоторых исследований я все еще не могу найти решение своей проблемы. У меня есть таблица, которая заполняется информацией от пользователя при нажатии кнопки. Идея состоит в том, что после вставки новой информации и нажатия кнопки добавления в таблице создается новая строка. Например:

  1. Начните с таблицы из 5 строк
  2. Пользователь помещает курсор в третью строку (выбрано)
  3. Пользователь нажимает кнопку добавления новой строки
  4. Новая строка добавляется в строку № 3, а старая третья строка теперь является строкой № 4.

У кого-нибудь из вас есть предложение?


person Houssam Eddine Mezghiche    schedule 03.10.2020    source источник
comment
Привет, вы можете создать минимально воспроизводимый пример, чтобы прояснить вашу проблему и показать, что вы приложили усилия задаю этот вопрос   -  person max    schedule 05.10.2020


Ответы (1)


Вот один подход. Создайте свойство в вашем UIFigure с именем CurrentRow.

properties (Access = private)
    CurrentRow % Last row selected in UITable
end

Всякий раз, когда пользователь щелкает ячейку в таблице, запускается событие UITableCellSelection, и вы можете установить свойство CurrentRow в качестве выбранной строки.

% Cell selection callback: UITable
function UITableCellSelection(app, event)
    app.CurrentRow = event.Indices(1);
end

Затем пользователь нажимает кнопку новой строки, и мы используем событие ButtonPushed для вставки новой строки.

% Button pushed function: Button
function ButtonPushed(app, event)
    insertedRow = [1 2 3 4];
    temp = [app.UITable.Data(1:app.CurrentRow-1,:);insertedRow;app.UITable.Data(app.CurrentRow:end,:)];
    app.UITable.Data = temp;
end

Очевидно, вы получите новые значения строки из какого-то другого элемента управления в форме, тогда как я только что присвоил жестко запрограммированные значения в качестве примера.

person BoilermakerRV    schedule 05.10.2020