exponenta event banner

uitable

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

Описание

uit = uitable создает компонент интерфейса пользователя таблицы на текущем рисунке и возвращает Table Объект компонента пользовательского интерфейса. Если рисунок недоступен, MATLAB ® вызывает figure для создания функции.

uit = uitable(Name,Value) задает значения свойств компонента пользовательского интерфейса таблицы, используя один или несколько аргументов пары имя-значение.

пример

uit = uitable(parent) создает таблицу в указанном родительском контейнере. Родительский контейнер может быть фигурой, созданной с помощью figure или uifigure функцию или дочерний контейнер, например панель. Значения свойств для uitable незначительно различаются в зависимости от того, создано ли приложение с помощью figure или uifigure функция. Дополнительные сведения см. в разделе Аргументы пары «имя-значение».

пример

uit = uitable(parent,Name,Value) задает родительский контейнер и одно или несколько значений свойств.

Примеры

свернуть все

Начиная с R2018a, можно отображать table данные массива в компоненте пользовательского интерфейса таблицы. (Этот тип данных поддерживается только в том случае, если компонент пользовательского интерфейса таблицы находится в рисунке, созданном с помощью uifigure функция. App Designer использует этот тип фигур для создания приложений.)

Создать массив таблиц t путем вызова readtable для считывания данных из файла. Выберите четыре переменные и 15 строк из t.

t = readtable('patients.xls');
vars = {'Age','Systolic','Diastolic','Smoker'};
t = t(1:15,vars);

Создание компонента пользовательского интерфейса таблицы и указание t в качестве данных.

fig = uifigure;
uit = uitable(fig,'Data',t);

A table with four columns: "Age", "Systolic", "Diastolic", and "Smoker". The table is populated with data. The data in the "Smoker" column appears as checked or unchecked boxes.

Отображение и программное обновление table данные массива в компоненте пользовательского интерфейса таблицы. (Этот тип данных поддерживается только в том случае, если компонент пользовательского интерфейса таблицы находится в рисунке, созданном с помощью uifigure функция. App Designer использует этот тип фигур для создания приложений.)

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

t = readtable('tsunamis.xlsx');
vars = {'Year','MaxHeight','Validity'};
t = t(1:20,vars);
fig = uifigure;
uit = uitable(fig,'Data',t);

A table with three columns of tsunami data: the year of the tsunami, the maximum tsunami height in meters, and the validity of the tsunami (for example, "questionable tsunami" or "definite tsunami").

Обновите действительность цунами в первой строке, отредактировав Data свойства таблицы пользовательского интерфейса.

uit.Data.Validity(1) = {'definite tsunami'};

A table with tsunami year, maximum height, and validity. The entry in the first row has a Validity value of "definite tsunami".

Преобразование данных о максимальной высоте с метров в футы путем доступа к данным и их изменения в MaxHeight столбец.

uit.Data.MaxHeight = uit.Data.MaxHeight*3.281;

A table with tsunami year, max height, and validity. The values in the MaxHeight column are in feet.

Создайте приложение, позволяющее пользователям сортировать и редактировать данные таблицы, а также обновляющее визуализацию данных при изменении данных. (Интерактивная сортировка столбцов поддерживается только в том случае, если компонент пользовательского интерфейса таблицы находится в рисунке, созданном с помощью uifigure функция. App Designer использует этот тип фигур для создания приложений.)

Сначала создайте файл программы с именем tsunamisData.m. В файле программы:

  • Создать table путем вызова readtable функция.

  • Создайте рисунок пользовательского интерфейса.

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

  • Создайте пузырьковую диаграмму для визуализации данных цунами, где координаты пузыря представляют широту и долготу цунами, а размер пузыря представляет максимальную высоту.

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

function tsunamisData
    % Create table array
    t = readtable('tsunamis.xlsx');
    vars = {'Latitude','Longitude','MaxHeight'};
    t = t(1:20,vars);

    % Create UI figure
    fig = uifigure;
    fig.Position(3:4) = [722 360];

    % Create table UI component
    uit = uitable(fig);
    uit.Data = t;
    uit.ColumnSortable = true;
    uit.ColumnEditable = [false false true];
    uit.Position(3) = 290;
    uit.DisplayDataChangedFcn = @updatePlot;

    % Create bubble chart
    ax = uiaxes(fig);
    ax.Position(1) = 315;
    ax.XLabel.String = 'Longitude';
    ax.YLabel.String = 'Latitude';
    x = t.Longitude;
    y = t.Latitude;
    sz = t.MaxHeight;
    bubblechart(ax,x,y,sz)

        % Update the bubble chart when table data changes
        function updatePlot(src,event)
            t = uit.DisplayData;
            x = t.Longitude;
            y = t.Latitude;
            sz = t.MaxHeight;
            bubblechart(ax,x,y,sz)
        end

end

An app with a table displaying the Latitude, Longitude, and MaxHeight data for a number of tsunamis, and a bubble chart of the table data. The bubble chart plots the location of the tsunamis with Longitude on the x-axis, Latitude on the y-axis, and bubble size given by MaxHeight.

Сортируемый столбец отображает стрелки в заголовке при наведении на него курсора мыши. Отсортируйте таблицу по максимальной высоте цунами.

The MaxHeight column of the tsunami data table is sorted in ascending order. The user's mouse cursor is on the MaxHeight column header, where an arrow pointing up is displayed next to the header text.

Измените максимальную высоту цунами во втором ряду на 30 метров, сначала дважды щелкнув ячейку таблицы, а затем введя новую высоту. Обратите внимание, как мыльная диаграмма обновляется в ответ.

The cell in the second row and the MaxHeight column is selected, and the number 1 has been replaced with the number 30. The bubble chart bubble sizes have changed to reflect the new MaxHeight data.

Начиная с R2019b, можно задать стиль строк, столбцов или ячеек компонента пользовательского интерфейса таблицы с помощью uistyle и addStyle функции. (Стили поддерживаются только в том случае, если компонент пользовательского интерфейса таблицы находится в фигуре, созданной с помощью uifigure функция. App Designer использует этот тип фигур для создания приложений.)

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

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

tdata = readtable('tsunamis.xlsx');
vars = {'Year','Month','Day','Hour', ...
        'MaxHeight','Cause','EarthquakeMagnitude'};
tdata = tdata(1:100,vars);

fig = uifigure('Position',[500 500 760 360]);
uit = uitable(fig);
uit.Position = [20 20 720 320];
uit.Data = tdata;
uit.RowName = 'numbered';

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

styleIndices = ismissing(tdata);
[row,col] = find(styleIndices);

s = uistyle('BackgroundColor',[1 0.6 0.6]);
addStyle(uit,s,'cell',[row,col]);

Начиная с R2021a, можно программно выполнять прокрутку к строке, столбцу или ячейке компонента пользовательского интерфейса таблицы с помощью scroll функция. (Программная прокрутка поддерживается только в том случае, если компонент пользовательского интерфейса таблицы находится на рисунке, созданном с помощью uifigure функция. App Designer использует этот тип фигур для создания приложений.)

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

tdata = readtable('patients.xls');
vars = {'Age','Systolic','Diastolic','Smoker'};
tdata = tdata(1:40,vars);

fig = uifigure;
uit = uitable(fig,'Data',tdata);
uit.RowName = 'numbered';

Выполните прокрутку до двадцать пятой строки таблицы.

scroll(uit,'row',25)

Создайте компонент пользовательского интерфейса таблицы, отображающий массив случайных целых чисел 10 на 3. Data задает отображаемые значения и Position указывает местоположение и размер таблицы в пределах фигуры.

f = figure;
uit = uitable(f,'Data',randi(100,10,3),'Position',[20 20 262 204]);

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

Создать пустой Table Компонент пользовательского интерфейса.

f = figure;
uit = uitable(f);

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

d = {'Male',52,true;'Male',40,true;'Female',25,false};
uit.Data = d;
uit.Position = [20 20 258 78];

Установите ColumnName для изменения заголовков столбцов на описательные имена. Установите ColumnEditable свойство для true чтобы пользователи могли редактировать данные в пользовательском интерфейсе. Когда пользователь изменяет значение в интерфейсе пользователя, Data обновление свойств для отражения этого изменения.

uit.ColumnName = {'Gender','Age','Authorized'};
uit.ColumnEditable = true;

Входные аргументы

свернуть все

Родительский контейнер, указанный как фигура, созданная с помощью figure или uifigure функция или дочерний контейнер:

  • Панели, вкладки и группы кнопок могут быть контейнерами любого типа рисунка.

  • Форматы сетки могут быть контейнерами только в фигурах, созданных с помощью uifigure функция.

Аргументы пары «имя-значение»

Пример: uitable(fig,'Data',[1 2 3; 4 5 6])

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должно отображаться внутри отдельных кавычек (' '). Можно указать несколько аргументов пары имен и значений как Name1,Value1,...,NameN,ValueN.

Можно задать Table с использованием аргументов пары Имя (Name) - Значение (Value).

  • Список свойств, доступных для приложений, созданных с помощью uifigure или в App Designer см. раздел Свойства таблицы.

  • Список свойств, доступных для приложений, созданных с помощью figure см. раздел Свойства таблицы.

Представлен в R2008a