Свойства таблиц

Управляйте внешним видом и поведением компонента таблицы UI

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

Таблица компоненты пользовательского интерфейса показывает строки и столбцы данных в приложении. Функция uitable создает компонент таблицы UI и устанавливает любые необходимые свойства прежде, чем отобразить его. Путем изменения значений свойств можно изменить определенные аспекты его внешнего вида и поведения. Используйте запись через точку, чтобы относиться к конкретному объекту и свойству.

f = figure;
t = uitable(f,'Data',[1 2 3; 4 5 6; 7 8 9]);
t.FontSize = 9;

Таблица

развернуть все

Табличные данные, заданные как числовой массив, логический массив или массив ячеек. Табличные данные могут быть любым числовым типом, logical или char. Используйте массив ячеек, чтобы задать смесь различных типов данных.

Табличные данные отображены в формате, заданном свойством ColumnFormat. Если существует несоответствие между типом данных табличных данных и значением свойства ColumnFormat, MATLAB® преобразовывает данные или выводит предупреждение. См. описание свойства ColumnFormat для получения дополнительной информации.

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

Если количество строк в массиве свойства Data не совпадает с числом элементов в массиве RowName, то количество строк в получившейся таблице является большими из этих двух значений. То же самое верно, когда свойство ColumnName не совпадает с количеством столбцов в массиве свойства Data.

Пример: t = uitable('Data',rand(10,3))

Пример: t = uitable('Data',{'blue' 5 true; 'orange' 25 false})

Имена заголовка столбца, заданные как одно из этих значений:

  • 'numbered' — Заголовки столбцов являются порядковыми номерами, которые запускаются в 1.

  • Массив ячеек из символьных векторов или категориальный массив — Каждый элемент массива становятся именем столбца. Если вы задаете 1-by-n массив ячеек, MATLAB хранит и возвращает значение как n-by-1 массив ячеек. Если вы задаете m-by-n массив, MATLAB изменяет размерность массива в вектор-столбец. Задайте многострочное имя столбца включением вертикальной наклонной черты (|) в имени столбца. Например, значение, 'Telephone|Number', производит заголовок столбца с символом новой строки между словами, “Телефоном” и “Номером”.

  • Массив пустой ячейки ({}) — Таблица не имеет никаких заголовков столбцов.

  • Пустая матрица ([]) — Таблица не имеет никаких заголовков столбцов

Если количество столбцов в массиве свойства Data не совпадает с числом элементов в массиве ColumnName, то количество столбцов в получившейся таблице является большими из этих двух значений.

Пример: t = uitable('ColumnName',{'Name'; 'Number'},'Data',{'Bob' 5})

Пример: t = uitable('ColumnName',{'Name'; []},'Data',{'Bob' 5})

Пример: t = uitable('ColumnName',{'Name'; 'Telephone|Number'},'Data',{'Bob','555-1212'})

Ширина столбцов таблицы, заданных как 'auto' или как 1-by-n массив ячеек.

Каждый столбец в массиве ячеек соответствует столбцу в таблице. Значения находятся в пиксельных модулях. Если вы задаете 'auto', то MATLAB вычисляет ширину столбца автоматически с помощью нескольких факторов, один из которых является значением свойства ColumnName.

Можно объединить фиксированные ширины столбца и ширину столбцов 'auto' в массиве ячеек, или можно задать одно значение 'auto', чтобы сделать всю ширину столбцов автоматической.

Выбор Auto Width в Редакторе Свойств таблицы имеет тот же эффект как установка свойства ColumnWidth к 'auto'.

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

Пример: t = uitable('ColumnWidth',{64 60 40},'Data',[1 2 3; 4 5 6])

Пример: t = uitable('ColumnWidth',{64 'auto' 40},'Data',[1 2 3; 4 5 6])

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

  • Пустой логический массив ([]) — Никакие столбцы не доступны для редактирования.

  • Логический 1-by-n массив — Этот массив задает, какие столбцы доступны для редактирования. Значение n равно количеству столбцов в таблице. Каждое значение в массиве соответствует столбцу таблицы. Значение true в массиве делает ячейки в том столбце доступными для редактирования. Значение false делает ячейки в том столбце недоступными для редактирования.

  • Логический скаляр — целая таблица, доступная для редактирования или недоступная для редактирования.

Пример: t = uitable('Data',rand(10,3),'ColumnEditable',[false true true])

Пример: t = uitable('Data',rand(10,3),'ColumnEditable',false)

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

Формат отображения ячейки, заданный как массив пустой ячейки или 1-by-n массив ячеек из символьных векторов.

Это свойство определяет как данные в каждом отображения столбца и ограничения для редактирования тех данных в пользовательском интерфейсе. Элементы массива ячеек соответствуют столбцам в массиве свойства Data. Если вы не хотите задавать формат отображения для конкретного столбца, задайте [] для того столбца. Если вы не задаете формат для столбца, MATLAB определяет отображение по умолчанию по условию тип данных в ячейке.

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

Значение формата ячеек

Описание

'char'

Отобразите лево-выровненные по ширине значения

Чтобы отредактировать ячейку, пользователь вводит текст, чтобы заменить существующее значение.

Если элемент в массиве свойства Data является логическим, то true или false появляются в таблице.

'logical'

Отобразите флажки.

Чтобы отредактировать ячейку, пользователь выбирает или снимает флажок. Затем MATLAB устанавливает соответствующее значение Data к true или false.

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

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

'numeric'

Отобразите выровненное по правому знаку значение, эквивалентное отображению Командного окна для числовых данных. Если элемент в массиве свойства Data является логическим, то 1 или 0 появляются в таблице. Если элемент в массиве свойства Data не является числовым и не логическим, то NaN появляется в таблице.

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

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

1-by-n массив ячеек из символьных векторов, такой как {'one' 'two' 'three'}

Отобразите всплывающее меню.

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

Имя формата принято функцией format, такой как: 'short' или 'long'

Отобразите значения свойств Data с помощью заданного формата.

Эффект всплывающего меню ColumnFormat и различные типы данных

Если значение ColumnFormat задает всплывающее меню, начальное значение Data не должно быть одной из опций в том меню. Начальное значение Data появляется, пока пользователь не делает различный выбор.

Например, предположите, что значением свойства Data для данного столбца является 'Choose' для всех строк, и значение ColumnFormat задает всплывающее меню с выбором 'group 1' и 'group 2'. Когда MATLAB составляет таблицу, те ячейки таблицы отображают 'Choose', пока пользователь не выбирает элемент во всплывающем меню:

f = figure;
myData = {'Andrew' 31 'Male' 'Choose'; ...
          'Bob' 41 'Male' 'Choose';  ...
          'Anne' 20 'Female' 'Choose';};
t = uitable('Parent', f,...
            'Position', [25 25 334 78],...            
            'ColumnFormat',({[] [] [] {'group 1' 'group 2'}}),... 
            'ColumnEditable', true,...
            'Data', myData);

Отображение данных доступных для редактирования столбцов

Эта таблица описывает, как различные типы данных отображаются с определенными значениями ColumnFormat.

 ColumnFormat
'numeric''char''logical'
Тип данных значения массива данныхЛюбой числовой типТаблица показывает номер как есть.MATLAB преобразовывает значение в текст и отображает лево-выровненный по ширине в таблице. Если MATLAB не может преобразовать значение, то NaN отображается.Не рекомендуемый. MATLAB может возвратить предупреждение, когда пользователь редактирует ячейку, если вы не задаете функцию CellEditCallback.
charТаблица показывает выровненное по правому знаку значение, как будто это - номер.Таблица показывает значение как есть.Не рекомендуемый. MATLAB может возвратить предупреждение, когда пользователь редактирует ячейку, если вы не задаете функцию CellEditCallback.
logicalТаблица показывает логические значения как числа. MATLAB может возвратить предупреждение, когда пользователь редактирует ячейку, если вы не задаете функцию CellEditCallback.Таблица показывает логическое значение как лево-выровненный по ширине 'true' или 'false'. MATLAB может возвратить предупреждение, когда пользователь редактирует ячейку, если вы не задаете функцию CellEditCallback.Таблица показывает логические значения как флажки.

Например, в следующей таблице, первый столбец (XData) оставляют выровненным по ширине, потому что значением ColumnFormat для того столбца является 'char'.

Имена заголовка строки, заданные как одно из этих значений:

  • 'numbered' — Заголовки строк являются порядковыми номерами, которые запускаются в 1.

  • Массив ячеек из символьных векторов или категориальный массив — Каждый элемент массива становятся именем строки. Имена строки ограничиваются одной строкой текста. Если вы задаете 1-by-n массив ячеек, MATLAB хранит и возвращает значение как n-by-1 массив ячеек. Если вы задаете m-by-n массив, MATLAB изменяет размерность массива в вектор-столбец.

  • Массив пустой ячейки ({}) — Таблица не имеет никаких заголовков строк.

  • Пустая матрица ([]) — Таблица не имеет никаких заголовков строк

Если количество строк в массиве свойства Data не совпадает с числом элементов в массиве RowName, то количество строк в получившейся таблице является большими из этих двух значений.

Пример: t = uitable('RowName',{'Name';'Number'},'Data',{'Bob';5})

Пример: t = uitable('RowName',{'Name';[]},'Data',{'Bob';5})

Способность перестроить столбцы таблицы, заданные как 'off' или 'on'. Это свойство обеспечивает способ позволить пользователям переупорядочить столбцы таблицы (но не метки) путем перетаскивания заголовков столбцов.

Примечание

Реорганизация столбцов таблицы в пользовательском интерфейсе не влияет на столбцы в массиве свойства Data.

Шрифт

развернуть все

Название шрифта, заданное как система, поддержало название шрифта или 'FixedWidth'. Шрифт по умолчанию зависит от конкретной операционной системы и локали.

Чтобы использовать шрифт фиксированной ширины, который выглядит хорошим в любой локали, задайте 'FixedWidth'. Фактический используемый шрифт фиксированной ширины зависит от свойства FixedWidthFontName корневого объекта. Изменение свойства FixedWidthFontName заставляет незамедлительное обновление отображения использовать новый шрифт.

Пример: 'Arial'

Размер шрифта, заданный в виде положительного числа. Свойство FontUnits задает модули. Размер по умолчанию системно-зависим.

Пример: 12

Пример: 12.5

Толщина шрифта, заданная как значение из следующей таблицы.

  • normal' — Насыщенность по умолчанию, определяемая конкретным видом шрифта

  • 'bold' — более тонкие контуры символов, чем 'normal'

MATLAB использует свойство FontWeight выбрать шрифт от доступных в вашей системе. Не все шрифты имеют полужирное начертание шрифта. Поэтому установка жирного шрифта все еще привести к установке обычного шрифта.

Примечание

'light' и значения толщины шрифта 'demi' были удалены в R2014b. Если вы задаете любое из этих значений, результатом является обычная толщина шрифта.

Угол шрифта, заданный как 'normal' или 'italic'. MATLAB использует это свойство выбрать шрифт от доступных в вашей системе. Установка этого свойства к 'italic' выбирает наклонную версию шрифта, если это доступно в вашей системе.

Примечание

Значение 'oblique' было удалено. Используйте 'italic' вместо этого.

Модули шрифта, заданные как одно из значений из этой таблицы.

Модульное значениеОписание
'points''points'. Одна точка является 1/72-й из дюйма.
'normalized'Нормированные значения для определения размера шрифта как часть высоты. Когда вы изменяете размер компонента пользовательского интерфейса, MATLAB масштабирует отображенный шрифт, чтобы поддержать ту часть.
'inches''inches'.
'centimeters''centimeters'.
'pixels'

'pixels'.

Начиная с версии R2015b, значения размеров в пикселях не зависят от вашего системного разрешения в системах Windows® и Macintosh:

  • В системах Windows пиксель составляет 1/72 дюйма.

  • В системах Macintosh пиксель составляет 1/72 дюйма.

В системах Linux® размер пикселя определяется вашим системным разрешением.

Интерактивность

развернуть все

Табличная видимость, заданная как 'on' или 'off'. Когда Visible является 'off', таблица не видима, но можно запросить и установить ее свойства.

Чтобы заставить ваше приложение запуститься быстрее, установите свойство Visible всех компонентов, которые первоначально не отображены к 'off'.

Рабочее состояние таблицы, заданной как 'on', 'off' или 'inactive'. Свойство Enable управляет, отвечает ли компонент пользовательского интерфейса на нажатия кнопок. Трех возможных значений:

  • 'on' – Компонент пользовательского интерфейса является операционным.

  • 'off' Компонент пользовательского интерфейса не является операционным и появляется grayed.

  • 'inactive' – Компонент пользовательского интерфейса не является операционным, но он имеет тот же внешний вид как тогда, когда Enable является 'on'.

Значение свойства Enable и тип нажатия кнопки определяют, как пользовательский интерфейс отвечает.

Включите значениеОтвет, чтобы щелкнуть левой кнопкойОтвет, чтобы щелкнуть правой кнопкой
'on'

Функция CellSelectionCallback выполняется (только для ячеек таблицы, не ячеек заголовка). Свойство Indices обновляет в объекте данных коллбэка, который MATLAB передает функции обратного вызова.

  1. Коллбэк WindowButtonDownFcn фигуры выполняется.

  2. Коллбэк ButtonDownFcn выполняется.

'off' или 'inactive'

  1. Коллбэк WindowButtonDownFcn фигуры выполняется.

  2. Коллбэк ButtonDownFcn выполняется.

  1. Коллбэк WindowButtonDownFcn фигуры выполняется.

  2. Коллбэк ButtonDownFcn выполняется.

Подсказка, заданная как вектор символов, представляет в виде строки скаляр или категориальный массив. Используйте это свойство отобразить сообщение, когда пользователь наведет указатель на компонент во время выполнения. Подсказка не отображается, когда компонент отключен. Если вы задаете это свойство как категориальный массив, MATLAB использует значения в массиве, не полный набор категорий.

Чтобы создать несколько строк текста, используйте функцию sprintf, чтобы вставить символы новой строки ('\n') в ваш текст. Например:

txt = sprintf('Line 1\nLine 2');

Затем установите свойство Tooltip на значение, возвращенное sprintf.

Контекстное меню, заданное как объект ContextMenu. Используйте это свойство отобразить контекстное меню, когда пользователь щелкнет правой кнопкой по компоненту UI. Создайте контекстное меню с помощью функции uicontextmenu.

Подсказка, заданная как вектор символов, представляет в виде строки скаляр или категориальный массив. Подсказка отображается, когда пользователь наводит указатель мыши на компонент в приложении. Если вы задаете это свойство как категориальный массив, MATLAB использует значения в массиве, не полный набор категорий.

Примечание

Свойство TooltipString не рекомендуется, начиная в R2018b. Используйте свойство Tooltip вместо этого.

Примечание

Поведение свойства Selected, измененного в R2014b, и это не рекомендуется. Это больше не имеет эффекта на объекты Table. Это свойство может быть удалено в будущем релизе.

Примечание

Поведение свойства SelectionHighlight, измененного в R2014b, и это не рекомендуется. Это больше не имеет эффекта на объекты Table. Это свойство может быть удалено в будущем релизе.

Цвет и моделирование

развернуть все

Цвет текста ячейки, заданный как триплет RGB, шестнадцатеричный цветовой код или один из перечисленных в таблице параметров цвета.

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7].

  • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#), сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут колебаться от 0 до F. Значения не являются чувствительными к регистру. Таким образом цветовые коды '#FF8800', '#ff8800', '#F80' и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Цвет фона, заданный как триплет RGB или m-3 матрица триплетов RGB. Триплет RGB является вектором - строкой, который задает интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений, [0,1]. Названия цвета не допустимы.

Задайте m-3 матрицу когда это необходимо штриховка строк таблицы, чтобы следовать за повторяющимся шаблоном m различных цветов. Каждой строкой матрицы должен быть триплет RGB. MATLAB использует строки матрицы, когда свойством RowStriping является 'on'. Табличный фон не чередуется, если и RowStriping не является 'on' и BackgroundColor, m-3 матрица.

Пример: t = uitable('Data',rand(10,3),'BackgroundColor',[0.85 0.85 1])

Пример: t = uitable('Data',rand(10,3),'BackgroundColor',[1 1 1 ;0.85 0.85 1])

В следующей таблице перечислены триплеты RGB для определенных цветов.

ЦветТриплет RGB
Желтый[1 1 0]
Пурпурный[1 0 1]
Голубой[0 1 1]
Красный[1 0 0]
Зеленый[0 1 0]
Синий[0 0 1]
Белый[1 1 1]
Черный[0 0 0]

Альтернативная штриховка строки, заданная как 'on' или 'off'. Это свойство управляет шаблоном штриховки строк таблицы.

Когда значение RowStriping установлено к 'on', матрица BackgroundColor задает цвета строки, чтобы отобразиться в повторяющемся шаблоне. Если матрица BackgroundColor имеет только одну строку, то штриховка является тем же самым во всех строках таблицы.

То, когда RowStriping установлен в 'off', затем первые раскрашивают матрицу BackgroundColor, задает штриховку для всех строк в таблице.

Положение

развернуть все

Местоположение и размер, заданный как четырехэлементный вектор формы [left bottom width height]. В этой таблице описываются каждый элемент в векторе.

ЭлементОписание
leftРасстояние от внутреннего левого края родительского контейнера к внешнему левому краю таблицы
bottomРасстояние от внутреннего базового края родительского контейнера к внешнему базовому краю таблицы
widthРасстояние между правыми и левыми внешними краями таблицы
heightРасстояние между верхними и нижними внешними краями таблицы

Все измерения указаны в единицах, заданных свойством Units.

Примечание

Значения Position относительно drawable area родительского контейнера. Область векторной и растровой графики является областью в границах контейнера и не включает область, занятую заголовком. Если родительский контейнер является фигурой, то область векторной и растровой графики также исключает панель меню и панель инструментов.

Используйте свойство Extent определить соответствующую калибровку для таблицы относительно данных. Установите width и height свойства Position к ширине и высоте свойства Extent. Следует иметь в виду, что, если таблица имеет значительные степени, делая это, может заставить таблицу расширять вне права или верхнего края его родительского контейнера.

Пример: Установка ширины и высоты размещать размер данных

Можно объединить запись через точку и индексацию массива когда это необходимо, чтобы изменить одно или два последовательных значения в векторе Position. Например, это кодовые наборы ширина и высота таблицы, чтобы совпадать с Extent таблицы:

t = uitable('Data',rand(10,3));
t.Position(3:4) = t.Extent(3:4);

Местоположение и размер, заданный как четырехэлементный вектор формы [left bottom width height]. Все измерения указаны в единицах, заданных свойством Units.

Это значение свойства идентично значениям свойств OuterPosition и Position.

Местоположение и размер, заданный как четырехэлементный вектор формы [left bottom width height]. Все измерения указаны в единицах, заданных свойством Units.

Это значение свойства идентично значениям свойств InnerPosition и Position.

Это свойство доступно только для чтения.

Размер включения прямоугольника, возвращенного как четырехэлементный вектор - строка. Первые два элемента вектора всегда являются нулем. Третьи и четвертые элементы являются шириной и высотой прямоугольника, содержащего таблицу, соответственно. Все измерения указаны в единицах, заданных свойством Units.

MATLAB определяет размер прямоугольника на основе текущего Data, RowName и значений свойств ColumnName. MATLAB оценивает значения ширины и высоты с помощью ширин строки и столбца. Предполагаемая степень может быть больше, чем фигура.

Рассмотрите использование значения свойства Extent при определении значений ширины и высоты свойства Position.

Модули измерения, заданного как одно из значений из этой таблицы.

Модульное значениеОписание
'pixels' (значение по умолчанию)

'pixels'.

Начиная в R2015b, расстояния в пикселях независимы от вашего системного разрешения по системам Макинтоша и Windows:

  • В системах Windows пиксель составляет 1/72 дюйма.

  • В системах Macintosh пиксель составляет 1/72 дюйма.

В системах Linux размер пикселя определяется вашим системным разрешением.

'normalized'Эти модули нормированы относительно родительского контейнера. Нижний левый угол контейнера сопоставляет с (0,0), и верхний правый угол сопоставляет с (1,1).
'inches''inches'.
'centimeters''centimeters'.
'points''points'. Одна точка равняется 1/72-й из дюйма.
'characters'

Эти модули основаны на шрифте uicontrol по умолчанию графического корневого объекта:

  • Ширина символов = ширина буквы x.

  • Высота символа = расстояние между базовыми линиями двух строк текста.

Чтобы получить доступ к шрифту uicontrol по умолчанию, используйте get(groot,'defaultuicontrolFontName') или set(groot,'defaultuicontrolFontName').

MATLAB измеряет все модули от левого нижнего угла родительского объекта.

Это свойство влияет на свойство Position. Если вы изменяете свойство Units, полагаете, что возвращение его значения к значению по умолчанию после завершения вашего вычисления старается не влиять на другие функции, которые принимают значение по умолчанию.

Порядок, в котором вы задаете свойства Units и Position, имеет эти эффекты:

  • Если вы задаете Units перед свойством Position, то MATLAB устанавливает Position с помощью модулей, которые вы задаете.

  • Если вы задаете свойство Units после того, как свойство Position, MATLAB установит положение с помощью Units по умолчанию. Затем MATLAB преобразовывает значение Position в эквивалентную стоимость в модулях, которые вы задаете.

Коллбэки

развернуть все

Функция обратного вызова редактирования ячейки, заданная как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

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

Если вы задаете это свойство как указатель на функцию (или массив ячеек, содержащий указатель на функцию), MATLAB передает объект CellEditData, содержащий данные о событиях в качестве второго аргумента к функции обратного вызова. Этот объект содержит свойства, описанные в следующей таблице. Можно получить доступ к этим свойствам в функции обратного вызова с помощью записи через точку.

Свойство

Описание

Indices

1 2 массив, содержащий индексы строки и столбца ячейки пользователь, отредактирован.

PreviousData

Предыдущие данные о ячейке. Значением по умолчанию является пустая матрица, [].

EditData

Вводимое пользователями значение.

NewData

Значение, которое MATLAB записал в массив свойства Data. Это значение является или тем же самым как EditData или конвертированным значением.

Свойство NewData пусто, если MATLAB обнаруживает ошибку во вводимых пользователями данных.

Error

Сообщение об ошибке возвратилось, если MATLAB обнаруживает ошибку во вводимых пользователями данных.

Свойство Error пусто, когда MATLAB успешно пишет значение в свойство Data.

Если свойство Error не пусто, то CellEditCallback может отобразить сообщение, или это может попытаться решить проблему.

Source

Объект таблицы, который выполняет функцию CellEditCallback.

EventName

'CellEdit'

Когда пользователь редактирует ячейку таблицы, MATLAB выполняет эти шаги:

  1. Попытки сохранить новое значение в свойство Data таблицы

  2. Вызывает функцию CellEditCallback (если она существует),

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

Пример: Оценка ввода данных пользователем

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

function myui
    f = figure;
    myData = { 'A '  31; 'B'  41; 'C'  5; 'D' 2.6};
    t = uitable('Parent',f,...
                'Position', [25 25 700 200], ...
                'Data',myData,...
                'ColumnEditable', [false true], ...
                'CellEditCallback',@converttonum);
        function converttonum(hObject,callbackdata)
             numval = eval(callbackdata.EditData);
             r = callbackdata.Indices(1)
             c = callbackdata.Indices(2)
             hObject.Data{r,c} = numval; 
        end
end

Когда вы запускаете myui, можно изменить значение во втором столбце таблицы. В ответ функция обратного вызова converttonum выполняется. Функция converttonum использует функцию eval, чтобы оценить ваш вход. Затем это устанавливает данные о ячейке на значение numval. Например, если вы вводите pi or1+1, функция converttonum устанавливает значение ячейки таблицы к числовому представлению входа. Поскольку нет никакой проверки ошибок в функции converttonum, недопустимые выражения возвращают ошибку, и новое значение ячейки таблицы становится NaN.

Функция обратного вызова выбора ячейки, заданная как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Эта функция обратного вызова выполняется, когда пользователь выполняет одно из следующих действий:

  • Подсвечивает ячейку данных (не ячейка строки или ячейка заголовка столбца) путем нажатия на него или навигации к нему с клавишей со стрелкой

  • Выбирает прямоугольную группу ячеек путем удержания клавиши Shift при выборе ячеек

  • Отменяет выбор ячейки Ctrl - нажатие на него

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

Свойство

Описание

Indices

массив n-2, содержащий индексы строки и столбца ячейки пользователь, выбран.

Source

Объект таблицы, который выполняет функцию CellSelectionCallback.

EventName

'CellSelection'

Функция обратного вызова нажатия кнопки, заданная как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Коллбэк ButtonDownFcn является функцией, которая выполняется, когда пользователь щелкает кнопкой мыши по компоненту пользовательского интерфейса. Коллбэк выполняется в следующих ситуациях:

  • Пользователь щелкает правой кнопкой по таблице, и свойство Enable установлено в 'on'.

  • Пользователь щелкает правой кнопкой или щелкает левой кнопкой по таблице, и свойство Enable установлено в 'off' или 'inactive'.

Функция обратного вызова нажатия клавиши, заданная как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

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

Если вы задаете это свойство как указатель на функцию (или массив ячеек, содержащий указатель на функцию), MATLAB передает объект, содержащий данные о коллбэке в качестве второго аргумента к функции обратного вызова. Этот объект содержит свойства, описанные в следующей таблице. Можно получить доступ к этим свойствам в функции обратного вызова с помощью записи через точку.

Свойство

Описание

Примеры:

a

=

Сдвиг

Shift-a

CharacterСимвол, который отображается в результате нажатия клавиши или ключей. Символ может быть пустым или непечатным.'a''=''''A'
ModifierМассив ячеек, содержащий имена одной или нескольких модифицирующих клавиш, которые нажимаются (такой как, Ctrl, Alt, Shift).{1x0 cell}{1x0 cell}{'shift'}{'shift'}
KeyКлавиша, нажатая, идентифицированная (строчной) меткой на ключе или текстовым описанием.'a''equal''shift''a'
SourceОбъект, который фокусируется, когда пользователь нажимает клавишу.Объект TableОбъект TableОбъект TableОбъект Table
EventNameДействие, которое заставило функцию обратного вызова выполняться.'KeyPress''KeyPress''KeyPress''KeyPress'

Нажатие модифицирующих клавиш влияет на данные о коллбэке следующими способами:

  • Модифицирующие клавиши могут влиять на свойство Character, но не изменяют свойство Key.

  • Определенные ключи и ключи, измененные с Ctrl, помещенными непечатными символами в свойстве Character.

  • Ctrl, Alt, Shift, и несколько других ключей, не генерирует данные о свойстве Character.

Также можно запросить свойство CurrentCharacter фигуры определить, которые изображают нажатого пользователя.

Функция обратного вызова ключевого релиза, заданная как одно из этих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Эта функция обратного вызова выполняется, когда объект Table фокусируется, и пользователь отпускает клавишу.

Если вы задаете это свойство как указатель на функцию (или массив ячеек, содержащий указатель на функцию), MATLAB передает объект, содержащий данные о коллбэке в качестве второго аргумента к функции обратного вызова. Этот объект содержит свойства, описанные в следующей таблице. Можно получить доступ к этим свойствам в функции обратного вызова с помощью записи через точку.

Свойство

Описание

Примеры:

a

=

Сдвиг

Shift-a

Character

Символьная интерпретация клавиши, которая была отпущена.

'a''=''''A'
Modifier

Текущий модификатор, такой как 'control' или массив пустой ячейки, если нет никакого модификатора.

{1x0 cell}{1x0 cell}{1x0 cell}{1x0 cell}
Key

Имя клавиши, которая была отпущена, идентифицированная строчной меткой на ключе или текстовым описанием.

'a''equal''shift''a'
SourceОбъект, который фокусируется, когда пользователь нажимает клавишу.Объект TableОбъект TableОбъект TableОбъект Table
EventNameДействие, которое заставило функцию обратного вызова выполняться.'ase''ase''ase''ase'

Нажатие модифицирующих клавиш влияет на данные о коллбэке следующими способами:

  • Модифицирующие клавиши могут влиять на свойство Character, но не изменяют свойство Key.

  • Определенные ключи и ключи, измененные с Ctrl, помещенными непечатными символами в свойстве Character.

  • Ctrl, Alt, Shift, и несколько других ключей, не генерирует данные о свойстве Character.

Также можно запросить свойство CurrentCharacter фигуры определить, которые изображают нажатого пользователя.

Функция создания компонентов, заданная в качестве одного из следующих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

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

Используйте функцию gcbo в своем коде CreateFcn, чтобы получить объект компонента, который создается.

Установка свойства CreateFcn на существующем объекте компонента не имеет никакого эффекта.

Функция удаления компонента, заданная в качестве одного из следующих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

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

Свойство DeleteFcn задает функцию обратного вызова, чтобы выполниться, когда MATLAB удаляет компонент (например, когда пользователь закрывает окно). MATLAB выполняет коллбэк DeleteFcn прежде, чем уничтожить свойства объекта компонента. Если вы не задаете свойство DeleteFcn, то MATLAB выполняет функцию удаления по умолчанию.

Используйте функцию gcbo в своем коде DeleteFcn, чтобы получить объект компонента, который удаляется.

Контроль выполнения обратного вызова

развернуть все

Прерывание обратного вызова, обозначаемое как 'on' или 'off'. Свойство «Прерывание» определяет, можно ли прерывать выполняемый обратный вызов.

Существует два состояния обратного вызова:

  • Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.

  • Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.

Каждый раз, когда MATLAB вызывает обратный вызов, этот обратный вызов пытается прервать текущий обратный вызов (если он существует). Свойство «Прерывание» объекта, имеющего текущий обратный вызов, определяет, разрешено ли прерывание:

  • Значение 'on' позволяет другим обратным вызовам прерывать обратные вызовы объекта. Прерывание происходит на следующем этапе, где MATLAB обрабатывает очередь, такой как тогда, когда существует drawnow, figure, getframe, waitfor или pause.

    • Если текущий обратный вызов содержит одну из этих команд, MATLAB останавливает выполнение обратного вызова в этой точке и выполняет прерывание обратного вызова. MATLAB возобновляет выполнение обратного вызова при завершении прерывания.

    • Если текущий обратный вызов не содержит одну из этих команд, MATLAB завершает выполнение обратного вызова без прерывания.

  • Значение 'off' блокирует все попытки прерывания. Свойство BusyAction объекта, владеющего прерывистым обратным вызовом, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.

Примечание

Прерывание и выполнение обратного вызова происходят по-разному в таких ситуациях:

  • Если прерывающий обратный вызов является обратным вызовом DeleteFcn, CloseRequestFcn или SizeChangedFcn, то прерывание происходит независимо от значения свойства прерывания.

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

  • Объекты-таймеры выполняются в соответствии с расписанием независимо от значения свойства прерывания.

  • MATLAB не сохраняет состояние свойств или отображения, когда прерывание происходит. Например, объект, возвращенный командой gca или gcf, может измениться при выполнении другого обратного вызова.

Смотрите Выполнение обратного вызова Прерывания для примера, который показывает, как свойства Interruptible и BusyAction влияют на поведение программы.

Постановка в очередь коллбэка, заданная как 'queue' (значение по умолчанию) или 'cancel'. Свойство BusyAction определяет, как MATLAB обрабатывает выполнение прерывания обратных вызовов. Существует два состояния обратного вызова:

  • Выполняемый обратный вызов — это актуальный на данный момент обратный вызов.

  • Прерывающий обратный вызов — это обратный вызов, который пытается прервать текущий обратный вызов.

Свойство BusyAction источника прерывания обратного вызова определяет, как MATLAB обрабатывает свое выполнение. Свойство BusyAction имеет эти значения:

  • 'queue' — поместите прерывающий обратный вызов в очередь вызовов, подлежащих обработке после завершения обратного вызова.

  • cancel' — не выполнять прерывание обратного вызова.

Каждый раз, когда MATLAB вызывает коллбэк, тот коллбэк всегда пытается прервать выполняющийся коллбэк. Свойство Interruptible объекта, коллбэк которого запускается, определяет, позволено ли прерывание. Если Interruptible установлен в:

  • 'on' — Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь. Это значение по умолчанию.

  • Свойство off — The BusyAction (объекта, владеющего прерыванием обратного вызова), определяет, ставит ли MATLAB в очередь или игнорирует прерывание обратного вызова.

Смотрите Выполнение обратного вызова Прерывания для примера, который показывает, как свойства BusyAction и Interruptible влияют на поведение программы.

Это свойство доступно только для чтения.

Удаление статуса, возврат на 'off' или 'on'. MATLAB задает значение свойства BeingDeleted 'on', когда обратный вызов DeleteFcn начинает выполнение. Значение свойства BeingDeleted остается 'on' до того момента, как объект перестанет существовать.

Проверьте значение свойства BeingDeleted, чтобы убедиться, что объект не будет удален до запроса или изменения.

Способность стать текущим объектом, заданным как 'on' или 'off':

  • 'on' — Устанавливает текущий объект на Table, когда пользователь кликает по компоненту в запущенном приложении. И свойство CurrentObject Figure и gco функциональный возврат Table как текущий объект.

  • 'off' Устанавливает текущий объект быть самым близким предком Table, HitTest которого является 'on', когда пользователь кликает по компоненту в запущенном приложении.

Примечание

Используйте свойство Enable включить или отключить компонент.

Родительский элемент/Дочерний элемент

развернуть все

Родительский объект, заданный как Figure, Panel, ButtonGroup или объект Tab. Используйте это свойство задать родительский контейнер при создании компонента пользовательского интерфейса или переместить существующий компонент пользовательского интерфейса в различный родительский контейнер.

Дочерние элементы Table, возвращенные как пустой массив. объекты Table не имеют никаких дочерних элементов. Установка этого свойства не имеет никакого эффекта.

Видимость указателя на объект, заданного как 'on', 'callback' или 'off'.

Это свойство управляет видимостью указателя на объект в его родительском списке дочерних элементов. Когда указатель не видим в своем родительском списке дочерних элементов, он не возвращен функциями, которые получают указатели путем поиска иерархии объектов или запроса свойств указателя. Эти функции включают get, findobj, gca, gcf, gco, newplot, cla, clf и close. Свойство HandleVisibility также управляет видимостью указателя объекта в свойстве CurrentObject родительской фигуры. Указатели все еще допустимы, даже если они не видимы. Если вы можете получить доступ к объекту, вы можете установить его, получить его свойства и передать его любой функции, которая работает с объектами.

Значение HandleVisibilityОписание
'on'Указатель на объект всегда видим.
'callback'Указатель на объект видим из коллбэков или функций, вызванных коллбэками, но не из функций, вызванных из командной строки. Эта опция блокирует доступ к объекту в командной строке, но позволяет обратным вызовам обращаться к нему.
'off'Указатель на объект невидим в любом случае. Эта опция предназначена для предотвращения непреднамеренных изменений в пользовательском интерфейсе другой функцией. Установите значение 'off' в HandleVisibility, чтобы временно скрыть указатель в течение выполнения этой функции.

Установите графическое корневое свойство ShowHiddenHandles на 'on' делать все указатели видимыми, независимо от их значения HandleVisibility. Эта установка не имеет никакого эффекта на их значения HandleVisibility.

Идентификаторы

развернуть все

Это свойство доступно только для чтения.

Тип графического объекта, возвращенного как 'uitable'.

Идентификатор объекта, заданный как вектор символов или скаляр строки. Можно задать уникальное значение Tag, чтобы служить идентификатором для объекта. Когда вам нужен доступ к объекту в другом месте вашего кода, вы можете использовать функцию findobj для поиска объекта на основе значения тега.

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

Введенный в R2008a

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