Программное приложение, который Отображения Таблица

В этом примере показано, как отобразить таблицу в приложении с помощью uitable функция. Это также показывает, как изменить внешний вид таблицы и как ограничить редактирование таблицы в запущенном приложении.

Составьте таблицу компонент пользовательского интерфейса в фигуре

uitable функция составляет пустую таблицу UI на рисунке.

fig = uifigure('Position',[100 100 752 250]);
uit = uitable('Parent',fig,'Position',[25 50 700 200]);

Составьте таблицу, содержащую смешанные типы данных

Загрузите демонстрационные данные о пациентах, которые содержат смешанные типы данных, и сохраните их в табличном массиве. Чтобы иметь данные появляются как выпадающий список в ячейках табличного компонента, преобразуют переменную массива ячеек в категориальный массив. Чтобы отобразить данные в компоненте таблицы UI, задайте табличный массив как значение Data свойство.

load patients
t = table(LastName,Age,Weight,Height,Smoker, ...
          SelfAssessedHealthStatus);
t.SelfAssessedHealthStatus = categorical(t.SelfAssessedHealthStatus, ...
          {'Poor','Fair','Good','Excellent'},'Ordinal',true);

uit.Data = t;

Figure contains an object of type uitable.

Настройка отображения

Можно настроить отображение таблицы UI несколькими способами. Используйте ColumnName свойство добавить заголовки столбцов.

uit.ColumnName = {'Last Name','Age','Weight', ...
                  'Height','Smoker','Health Status'};

Figure contains an object of type uitable.

Чтобы настроить ширины столбцов, задайте ColumnWidth свойство. ColumnWidth свойство является массивом ячеек 1 на n, где N является количеством столбцов в таблице. Установите определенную ширину столбца или используйте 'auto' позволять MATLAB® установить ширину на основе содержимого.

uit.ColumnWidth = {'auto',75,'auto','auto','auto',100};

Figure contains an object of type uitable.

Добавьте пронумерованные заголовки строк путем установки RowName свойство к 'пронумерованному'.

uit.RowName = 'numbered';

Figure contains an object of type uitable.

Измените местоположение и измените размер таблицы с помощью Position свойство.

uit.Position = [15 25 565 200];

Figure contains an object of type uitable.

По умолчанию компоненты таблицы UI используют чередование строки и цикл через заданные цвета фона, пока конец таблицы не достигнут. Если вы устанавливаете RowStriping свойство к 'off', компонент таблицы UI будет только использовать первый цвет, заданный в BackgroundColor свойство для всех строк. Здесь, оставьте строку, чередующую 'on' и выбранный три различных цвета для BackgroundColor свойство.

uit.BackgroundColor = [1 1 .9; .9 .95 1;1 .5 .5];

Figure contains an object of type uitable.

Включите сортировку столбца и ограничьте редактирование значений ячеек

Чтобы ограничить способность пользователя отредактировать данные в таблице, установите ColumnEditable свойство. По умолчанию данные не могут быть отредактированы в запущенном приложении. Установка ColumnEditable свойство к true поскольку столбец позволяет пользователю редактировать данные в том столбце.

uit.ColumnEditable = [false true true true true true];

Сделайте все столбцы поддающимися сортировке путем установки ColumnSortable свойство к true. Если столбец является поддающимся сортировке, стрелы появляются в заголовке, когда вы наводите своя мышь на него.

uit.ColumnSortable = true;

Figure contains an object of type uitable.

Создание обратного вызова

Чтобы программировать таблицу, чтобы ответить на взаимодействие с пользователем, создайте функцию обратного вызова. Например, можно задать SelectionChangedFcn выполнить команды, когда пользователь приложения выбирает различную строку, столбец или ячейку таблицы.

Здесь, запишите функцию обратного вызова, чтобы подтвердить это значения в Age столбец между 0 и 120. Создайте новую функцию с именем ageCheckCB и сохраните его в файл с именем ageCheckCB в папке, которая находится на пути MATLAB.

function ageCheckCB(src,event)
if (event.Indices(2) == 2 && ...                  % check if column 2
      (event.NewData < 0 || event.NewData > 120))
   tableData = src.Data;
   tableData{event.Indices(1),event.Indices(2)} = event.PreviousData;
   src.Data = tableData;                              % revert the data
   warning('Age must be between 0 and 120.')          % warn the user
end

Присвойте ageCheckCB к CellEditCallback свойство. Этот коллбэк выполняется, когда пользователь изменяет значение в ячейке. Если пользователь вводит значение, которое находится вне допустимого диапазона, функция обратного вызова возвращает предупреждение и задерживает значение ячейки к предыдущему значению.

uit.CellEditCallback = @ageCheckCB;

Для получения дополнительной информации о записи функций обратного вызова, смотрите Запись обратных вызово для приложений, созданных программно.

Получение всех свойств таблиц

Чтобы видеть все свойства таблицы, используйте get команда.

get(uit)
          BackgroundColor: [3x3 double]
             BeingDeleted: off
               BusyAction: 'queue'
            ButtonDownFcn: ''
         CellEditCallback: @ageCheckCB
    CellSelectionCallback: ''
                 Children: [0x0 handle]
           ColumnEditable: [0 1 1 1 1 1]
             ColumnFormat: {}
               ColumnName: {6x1 cell}
           ColumnSortable: 1
              ColumnWidth: {'auto'  [75]  'auto'  'auto'  'auto'  [100]}
              ContextMenu: [0x0 GraphicsPlaceholder]
                CreateFcn: ''
                     Data: [100x6 table]
                DeleteFcn: ''
              DisplayData: [100x6 table]
    DisplayDataChangedFcn: ''
                   Enable: 'on'
                   Extent: [0 0 234.3750 234.3750]
                FontAngle: 'normal'
                 FontName: 'Helvetica'
                 FontSize: 12
                FontUnits: 'pixels'
               FontWeight: 'normal'
          ForegroundColor: [0 0 0]
         HandleVisibility: 'on'
            InnerPosition: [15 25 565 200]
            Interruptible: on
              KeyPressFcn: ''
            KeyReleaseFcn: ''
                   Layout: [0x0 matlab.ui.layout.LayoutOptions]
              Multiselect: on
            OuterPosition: [15 25 565 200]
                   Parent: [1x1 Figure]
                 Position: [15 25 565 200]
     RearrangeableColumns: off
                  RowName: 'numbered'
              RowStriping: on
                Selection: []
      SelectionChangedFcn: ''
            SelectionType: 'cell'
      StyleConfigurations: [0x3 table]
                      Tag: ''
                  Tooltip: ''
                     Type: 'uitable'
                    Units: 'pixels'
                 UserData: []
                  Visible: on

Смотрите также

Функции

Свойства

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте