Создайте табличный компонент пользовательского интерфейса
создает табличный компонент пользовательского интерфейса в текущей фигуре и возвращает uit
= uitableTable
Объект компонента пользовательского интерфейса. Если нет никакой доступной фигуры, MATLAB® вызывает figure
функция, чтобы создать ту.
задает значения свойств компонента таблицы UI, использующего один или несколько аргументов пары "имя-значение".uit
= uitable(Name,Value
)
составляет таблицу в заданном родительском контейнере. Родительский контейнер может быть фигурой, созданной с любым uit
= uitable(parent
)figure
или uifigure
функция или дочерний контейнер, такой как панель. Значения свойств для uitable
варьируйтесь немного в зависимости от того, создано ли приложение с figure
или uifigure
функция. Для получения дополнительной информации см. Аргументы в виде пар имя-значение.
задает родительский контейнер и одни или несколько значений свойств.uit
= uitable(parent
,Name,Value
)
Начиная в R2018a, можно отобразиться table
данные массива в компоненте таблицы UI. (Этот тип данных поддерживается только, когда компонент таблицы UI находится на рисунке, созданном с uifigure
функция. App Designer использует этот тип фигуры для того, чтобы создать приложения.)
Создайте табличный массив t
путем вызова readtable
функционируйте, чтобы считать данные из файла. Выберите четыре переменные и 15 строк от t
.
t = readtable('patients.xls'); vars = {'Age','Systolic','Diastolic','Smoker'}; t = t(1:15,vars);
Создайте компонент таблицы UI и задайте t
как данные.
fig = uifigure;
uit = uitable(fig,'Data',t);
Отобразитесь и программно обновитесь table
данные массива в компоненте таблицы UI. (Этот тип данных поддерживается только, когда компонент таблицы UI находится на рисунке, созданном с uifigure
функция. App Designer использует этот тип фигуры для того, чтобы создать приложения.)
Создайте табличный массив путем чтения в данных о цунами из файла и отобразите подмножество данных в компоненте таблицы UI.
t = readtable('tsunamis.xlsx'); vars = {'Year','MaxHeight','Validity'}; t = t(1:20,vars); fig = uifigure; uit = uitable(fig,'Data',t);
Обновите валидность цунами в первой строке путем редактирования Data
свойство таблицы UI.
uit.Data.Validity(1) = {'definite tsunami'};
Преобразуйте максимальные данные о высоте от метров до ног путем доступа и изменения данных в MaxHeight
столбец.
uit.Data.MaxHeight = uit.Data.MaxHeight*3.281;
Создайте приложение, которое позволяет пользователям сортировать и редактировать табличные данные, и это обновляет визуализацию данных, когда данные изменяются. (Интерактивная сортировка столбца поддерживается только, когда компонент таблицы UI находится на рисунке, созданном с uifigure
функция. App Designer использует этот тип фигуры для того, чтобы создать приложения.)
Во-первых, создайте программный файл под названием tsunamisData.m
. В программном файле:
Создайте a table
массив путем вызова readtable
функция.
Создайте фигуру пользовательского интерфейса.
Создайте поддающийся сортировке и доступный для редактирования компонент таблицы UI, чтобы отобразиться на рисунке. Сохраните table
массив к Data
компонента свойство.
Создайте пузырьковый график, чтобы визуализировать данные о цунами, где координаты пузыря представляют широту и долготу цунами, и размер пузыря представляет максимальную высоту.
Задайте DisplayDataChangedFcn
коллбэк, который использует DisplayData
свойство обновить пузырьковую диаграмму, когда столбцы видов пользователя приложения или ячейки редактирований в компоненте таблицы UI.
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
Поддающиеся сортировке стрелки отображений столбца в заголовке, когда вы наводите своя мышь на него. Сортировка таблицы максимальной высотой цунами.
Отредактируйте максимальную высоту цунами во второй строке, чтобы быть 30 метров первым двойным кликом на ячейке таблицы и затем вводом новой высоты. Заметьте, как пузырьковая диаграмма обновляется в ответ.
Начиная в R2019b, можно разработать строки, столбцы или ячейки компонента таблицы UI использование uistyle
и addStyle
функции. (Стили только поддерживаются, когда компонент таблицы UI находится на рисунке, созданном с uifigure
функция. App Designer использует этот тип фигуры для того, чтобы создать приложения.)
Разработайте ячейки в компоненте таблицы UI, которые содержат отсутствующие значения. В этом случае добавьте красный стиль цвета фона в ячейки, которые имеют NaN
значения.
Считайте выборочные данные цунами в рабочую область как табличный массив. Затем создайте компонент таблицы UI, чтобы отобразить данные.
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
значения в компоненте таблицы UI.
styleIndices = ismissing(tdata); [row,col] = find(styleIndices); s = uistyle('BackgroundColor',[1 0.6 0.6]); addStyle(uit,s,'cell',[row,col]);
Начиная в R2021b, можно программно установить и запросить, какие табличные элементы выбраны и указывают, могут ли пользователи выбрать ячейки, строки или столбцы. (Программируемый выбор только поддерживается, когда компонент таблицы UI находится на рисунке, созданном с uifigure
функция. App Designer использует этот тип фигуры для того, чтобы создать приложения.)
При использовании этой функции создайте приложение, которое автоматически отображает данные на графике по карте, когда пользователь выбирает его в таблице. Во-первых, создайте программный файл под названием selectTsunamis.m
. В программном файле:
Загрузите данные о цунами путем вызова readtable
функция.
Создайте фигуру пользовательского интерфейса с компонентом таблицы UI и географической пузырьковой диаграммой в панели.
Сконфигурируйте компонент таблицы UI. Храните данные о цунами в Data
свойство, и позволило пользователям выбрать несколько строк путем установки SelectionType
и MultiSelect
свойства.
Задайте SelectionChangedFcn
коллбэк, который обновляет пузырьковую диаграмму, когда пользователь приложения изменяет табличный выбор. Графики функций пузырь для каждой выбранной строки, где размер пузыря представляет максимальную высоту цунами.
function selectTsunamis % Load data T = readtable('tsunamis.xlsx'); vars = {'Latitude','Longitude','MaxHeight'}; T = T(1:20,vars); % Create UI components fig = uifigure('Position',[500 500 700 350]); tbl = uitable(fig,'Position',[20 20 250 300]); pnl = uipanel(fig,'Position',[285 20 400 300]); geobubble(pnl,[],[]); % Configure table tbl.Data = T; tbl.SelectionType = 'row'; tbl.Multiselect = 'on'; tbl.SelectionChangedFcn = @plotTsunami; % Plot tsunami data for each selected row function plotTsunami(src,event) rows = event.Selection; data = src.Data(rows,:); lat = data.Latitude; long = data.Longitude; ht = data.MaxHeight; geobubble(pnl,lat,long,ht); end end
Запустите selectTsunamis
функция и выбор несколько строк таблицы удержанием Ctrl при нажатии. График обновляется с данными о цунами.
Начиная в R2021a, можно программно прокрутить к строке, столбцу или ячейке компонента таблицы UI использование scroll
функция. (Программируемая прокрутка только поддерживается, когда компонент таблицы UI находится на рисунке, созданном с uifigure
функция. App Designer использует этот тип фигуры для того, чтобы создать приложения.)
Считайте демонстрационные данные о пациентах в рабочую область как табличный массив. Затем создайте компонент таблицы UI, чтобы отобразить данные.
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)
Создайте компонент таблицы UI, который отображается 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;
parent
— Родительский контейнерFigure
объект (значение по умолчанию) | Panel
возразите | Tab
возразите | ButtonGroup
возразите | GridLayout
объектuitable(fig,'Data',[1 2 3; 4 5 6])
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в одинарных кавычках (' '
). Можно задать несколько имен и аргументов пары значения как Name1,Value1,...,NameN,ValueN
.
Примечание
Свойства, перечисленные здесь, являются подмножеством доступных свойств. Для полного списка смотрите Свойства таблиц.
Data
Табличные данныеТабличные данные в виде одного из следующих типов массива:
Табличный массив (uifigure
- только основанные приложения) — Отображения любая комбинация типов данных это table
поддержка массивов, такая как datetime
, duration
, и categorical
.
Числовой массив — числовые значения Отображений, такие как double
или single
.
Логический массив — флажки Displays. true
значения соответствуют выбранным полям, тогда как false
значения отображают очищенные поля.
Массив ячеек — Отображения любая комбинация числовых, логических, или значения символьного массива.
Массив строк — символы Отображений и текст.
Массив ячеек из символьных векторов Символы отображений и текст.
Предотвратить предупреждения или NaN
значения, которые отображаются, когда пользователи вводят недопустимые данные в редактируемую ячейку, запишите CellEditCallback
функционируйте, чтобы преобразовать данные в соответствующий тип. Когда пользователь редактирует ячейку, Data
обновления свойства.
В App Designer и приложениях создал использование uifigure
функция, можно задать Data
свойство как табличный массив. Табличные массивы обеспечивают удобный способ хранить табличные данные как переменную MATLAB. table
, readtable
, и array2table
функции создают табличные массивы. В отличие от этого, uitable
функция создает Table
Компонент пользовательского интерфейса (компонент пользовательского интерфейса для приложения).
Когда вы задаете Data
свойство Table
Компонент пользовательского интерфейса как табличный массив, затем MATLAB устанавливает формат Table
Компонент пользовательского интерфейса автоматически на основе значений в табличном массиве:
По умолчанию имена столбцов, отображенные в приложении, совпадают с VariableNames
свойство табличного массива. Изменение ColumnName
свойство Table
Компонент пользовательского интерфейса обновляет пользовательский интерфейс, но это не обновляет имена переменных в табличном массиве.
По умолчанию имена строки, отображенные в приложении, совпадают с RowName
свойство табличного массива. Изменение RowName
свойство Table
Компонент пользовательского интерфейса обновляет пользовательский интерфейс, но это не обновляет имена строки в табличном массиве.
Тип данных каждого табличного форматирования средств управления переменной типа массив для соответствующего столбца в приложении. При попытке установить ColumnFormat
свойство, MATLAB возвращает предупреждение.
Для получения дополнительной информации об отображающихся табличных данных массива смотрите Табличные Типы данных массива в Приложениях App Designer.
Используйте ColumnFormat
свойство задать формат для данных, которые являются числовым, логическим, ячейкой, или массивом строк или массивом ячеек из символьных векторов. Если данные редактируются и приводят к несоответствию между типом данных данных и ColumnFormat
свойство, MATLAB преобразует данные или выводит предупреждение. Смотрите Отображение Данных Доступных для редактирования Столбцов в ColumnFormat
описание свойства для получения дополнительной информации.
ColumnWidth
— Ширина столбцов таблицы'auto'
(значение по умолчанию) | 'fit'
| '1x'
| 1 n
cellArrayШирина столбцов таблицы в виде 'auto'
или как 1
- n
массив ячеек из символьных векторов, строки и числовые значения. \in uifigure
- основанные приложения, можно дополнительно задать ширину столбца как '1x'
или 'fit'
.
Автоматические ширины — Задают 'auto'
чтобы иметь MATLAB вычисляют ширины столбцов автоматически с помощью нескольких факторов, одним из которых является ColumnName
значение свойства.
Подходящие ширины к содержимому (uifigure
- только основанные приложения) — Задают значение 'fit'
сконфигурировать столбцы, чтобы строго настроить ширины, чтобы соответствовать именам столбцов и данным. Эта установка позволяет более узкие столбцы, чем 'auto'
делает.
Универсальные ширины (uifigure
- только основанные приложения) — Задают значение '1x'
сделать все столбцы той же шириной, деля свободное место одинаково.
Фиксированные ширины — Задают массив ячеек числовых значений, которые задают ширину столбцов в пиксельных модулях.
Комбинации — можно объединить ширины зафиксированного и переменного столбца в массиве ячеек. Каждый элемент в массиве ячеек соответствует столбцу в таблице. Если массив ячеек, который вы задаете, имеет меньше значений, чем количество столбцов, то столбцы без заданного значения сохраняют значение по умолчанию 'auto'
. Если массив имеет больше значений, чем количество столбцов, MATLAB игнорирует дополнительные значения.
Взвешенные переменные ширины (uifigure
- только основанные приложения) — Задают массив ячеек с векторами символов или строками, состоявшими из номера, конкатенированного с 'x'
(например, '2x'
, '3x'
, и т.д.). The X Factor каждого столбца устанавливает ту ширину столбца пропорционально относительно других с фактором для остающегося пространства в таблице UI.
Пример: uit = uitable(uifigure,'ColumnWidth','auto','Data',[1 2 3;4 5 6])
Пример: uit = uitable(uifigure,'ColumnWidth','fit','Data',[1 2 3;4 5 6])
Пример: uit = uitable(uifigure,'ColumnWidth',{64,60,40},'Data',[1 2 3;4 5 6])
Пример: uit = uitable(uifigure,'ColumnWidth',{'2x','1x','1x'},'Data',[1 2 3;4 5 6])
Пример: uit = uitable(uifigure,'ColumnWidth',{64,"auto",40},'Data',[1 2 3;4 5 6])
Пример: uit = uitable(uifigure,'ColumnWidth',{'fit','1x','3x'},'Data',[1 2 3;4 5 6])
ColumnEditable
— Способность отредактировать ячейки столбца[]
(значение по умолчанию) | логический
массив | логический скалярСпособность отредактировать ячейки столбца в виде:
Пустой логический массив ([]
) — Никакие столбцы не доступны для редактирования.
Логическое
массив — Этот массив задает, какие столбцы доступны для редактирования. Значение n
равно количеству столбцов в таблице. Каждое значение в массиве соответствует столбцу таблицы. Значение true
в массиве делает ячейки в том столбце доступными для редактирования. Значение false
делает ячейки в том столбце недоступными для редактирования. Если массив имеет больше значений, чем количество столбцов, MATLAB игнорирует избыточные значения. Если массив имеет меньше значений, чем количество столбцов, то столбцы без заданного значения не доступны для редактирования.
Логический скаляр — целая таблица доступна для редактирования или недоступна для редактирования.
Когда пользователь редактирует ячейку, Data
обновления свойства.
Пример: uit = uitable(uifigure,'Data',rand(10,3),'ColumnEditable',[false true true])
Пример: uit = uitable(uifigure,'Data',rand(10,3),'ColumnEditable',false)
Чтобы позволить пользователям взаимодействовать со средствами управления в столбцах таблицы, которые содержат флажки или всплывающие меню, установите ColumnEditable
свойство к true
.
Если Data
свойство является табличным массивом, затем любые переменные, которые являются многостолбцовыми или содержат недоступные для редактирования типы данных, как duration
, не доступны для редактирования в запущенном приложении даже когда ColumnEditable
свойством является true
. Табличные переменные типа массив, которые содержат смешанные типы данных в массиве ячеек, доступны для редактирования в запущенном приложении, пока типы данных доступны для редактирования.
CellEditCallback
— Функция обратного вызова редактирования ячейкиФункция обратного вызова редактирования ячейки в виде одного из этих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Используйте эту функцию обратного вызова, чтобы выполнить вычисления или подтвердить вход, когда пользователь приложения изменит содержимое ячейки таблицы.
Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя с ячейкой (такой как индексы ячейки). MATLAB передает эту информацию в CellEditData
возразите в качестве второго аргумента против своей функции обратного вызова. В App Designer аргумент называется событием
Вы можете запросить свойства объекта с помощью записи через точку. Например, event.Indices
возвращает индексы выбранной ячейки. CellEditData
объект не доступен для функций обратного вызова, заданных как векторы символов.
Следующая таблица описывает свойства CellEditData
объект.
Свойство | Описание |
---|---|
Indices | Это 1 2 массив, содержащий индексы строки и столбца ячейки пользователь, отредактированный в запущенном приложении. Когда столбец сортируется, |
DisplayIndices | Это 1 2 массив, содержащий индексы строки и столбца, соответствующие местоположению отредактированной ячейки в отображении отсортированной таблицы. Если пользователь не сортирует столбцы, то |
PreviousData | Это - предыдущие данные о ячейке. Значением по умолчанию является пустая матрица, |
EditData | Это - вводимое пользователями значение. |
NewData | Это - значение, которое MATLAB записал в
|
Error | Это - сообщение об ошибке, возвращенное, если MATLAB обнаруживает ошибку во вводимых пользователями данных.
Если |
Source | Компонент, выполняющий коллбэк. |
EventName |
|
Когда пользователь редактирует ячейку таблицы, MATLAB выполняет эти шаги:
Попытки сохранить новое значение в Data
свойство таблицы
Вызывает CellEditCallback
функция (если это существует),
Если результаты значения по ошибке и нет никакого CellEditCallback
функция, затем данные о ячейке возвращаются к своему предыдущему значению и никаким ошибочным отображениям.
Для получения дополнительной информации о записи коллбэков, смотрите Коллбэки Записи в App Designer.
Position
— Местоположение и размер таблицы[left bottom width height]
Местоположение и размер таблицы в виде четырехэлементного вектора из формы [left bottom width height]
В этой таблице описываются каждый элемент в векторе.
Элемент | Описание |
---|---|
left | Расстояние от внутреннего левого края родительского контейнера к внешнему левому краю таблицы |
bottom | Расстояние от внутреннего базового края родительского контейнера к внешнему базовому краю таблицы |
width | Расстояние между правыми и левыми внешними краями таблицы |
height | Расстояние между верхними и нижними внешними краями таблицы |
Все измерения находятся в модулях, заданных Units
свойство.
Position
значения относительно drawable area родительского контейнера. Область векторной и растровой графики является областью в границах контейнера и не включает область, занятую художественными оформлениями, такими как панель меню или заголовок.
Units
— Единицы измерения'pixels'
| 'normalized'
| 'inches'
| 'centimeters'
| 'points'
| ...Единицы измерения в виде одного из значений в этой таблице.
Модульное значение | Описание |
---|---|
'pixels' (значение по умолчанию) | Расстояния в пикселях независимы от вашего системного разрешения по Windows® и системы Макинтоша:
На Linux® системы, размер пикселя определяется вашим системным разрешением. |
'normalized' | Эти модули нормированы относительно родительского контейнера. Нижний левый угол контейнера сопоставляет с |
'inches' | 'inches'. |
'centimeters' | 'centimeters'. |
'points' | 'points'. Одна точка равняется 1/72-й из дюйма. |
Рекомендуемым значением является 'pixels'
, потому что большая часть функциональности создания приложений MATLAB измеряет расстояния в пикселях. Можно составить таблицу, которая перемасштабирует на основе размера родительского контейнера путем порождения таблицы менеджеру по размещению сетки, созданному с помощью uigridlayout
функция. Для получения дополнительной информации смотрите, Размечают Приложения Программно.
figure
- Основанные ПриложенияДля таблиц в приложениях, созданных с помощью figure
функция, значение по умолчанию Units
'normalized'
.
Кроме того, можно задать Units
как 'characters'
. Символьные модули основаны на шрифте uicontrol по умолчанию графического корневого объекта:
Ширина символов = ширина буквы x
.
Высота символа = расстояние между базовыми линиями двух строк текста.
Чтобы получить доступ к шрифту uicontrol по умолчанию, используйте get(groot,'defaultuicontrolFontName')
или set(groot,'defaultuicontrolFontName')
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.