Table Properties

Внешний вид и поведение компонента пользовательского интерфейса таблицы управления в figure- основанные на приложениях

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

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

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 array - Этот массив определяет, какие столбцы можно редактировать. Значение 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.

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

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

'numeric'

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

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

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

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

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

Для редактирования камеры пользователь выбирает элемент из всплывающего меню. MATLAB устанавливает соответствующие Data значение массива свойств для выбранного элемента меню. The 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Таблица отображает значение с выравниванием по правому краю, как если бы это было число.В таблице отображается значение as-is.Не рекомендуется. MATLAB может вернуть предупреждение при редактировании камеры, если вы не задаете CellEditCallback функция.
logicalВ таблице логические значения отображаются в виде чисел. MATLAB может вернуть предупреждение при редактировании камеры, если вы не задаете CellEditCallback функция.Таблица отображает логическое значение с выравниванием по левому краю 'true' или 'false'. MATLAB может вернуть предупреждение при редактировании камеры, если вы не задаете CellEditCallback функция.В таблице логические значения отображаются как флажки.

Например, в следующей таблице первый столбец (X-Data) остается обоснованным, потому что 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', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

Примечание

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

Шрифт

расширить все

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

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

Пример: 'Arial'

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

Пример: 12

Пример: 12.5

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

  • 'normal' - Вес по умолчанию, определяемый конкретным шрифтом

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

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

Примечание

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

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

Примечание

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

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

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

Пиксели.

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

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

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

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

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

расширить все

Состояние видимости, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Отобразите объект.

  • 'off' - Скрыть объект, не удаляя его. Вы по-прежнему можете получить доступ к свойствам невидимого компонента пользовательского интерфейса.

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

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

  • 'on' - Компонент UI работает.

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

  • 'inactive' - Компонент UI не работает, но имеет тот же внешний вид, что и когда Enable является 'on'.

Значение Enable свойство и тип кнопки нажатия кнопки определять, как UI реагирует.

Включите значениеОтвет на щелчок влевоОтвет на щелчок правой кнопкой мыши
'on'

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

  1. Рисунок WindowButtonDownFcn коллбэк.

  2. The ButtonDownFcn коллбэк.

'off' или 'inactive'

  1. Рисунок WindowButtonDownFcn коллбэк.

  2. The ButtonDownFcn коллбэк.

  1. Рисунок WindowButtonDownFcn коллбэк.

  2. The ButtonDownFcn коллбэк.

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

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

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

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

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

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

Примечание

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

Примечание

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

Примечание

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

Цвет и укладка

расширить все

Цвет текста камеры, заданный как триплет 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', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

Положение

расширить все

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

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

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

Примечание

The 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 свойство.

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

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

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

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

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

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

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

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

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

Пиксели.

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

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

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

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

'normalized'Эти модули измерения нормированы относительно родительского контейнера. Нижний левый угол контейнера сопоставлен с (0,0) и правый верхний угол преобразуется в (1,1).
'inches'Дюймы.
'centimeters'Сантиметры.
'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 или преобразованное значение.

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

Error

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

The 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 выполняется функция обратного вызова. The converttonum функция использует eval функция, чтобы вычислить ваш вход. Затем он устанавливает камере данные в значение numval. Для примера, если вы вводите pi или 1+1, а converttonum функция устанавливает значение камеры таблицы в числовое представление входа. Потому что нет никакой ошибки при проверке converttonum функция, недопустимые выражения возвращают ошибку, и новое значение камеры таблицы становится NaN.

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

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

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

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

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

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

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

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

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

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

Свойство

Описание

Indices

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

Source

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

EventName

'CellSelection'

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

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

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

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

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

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

  • Пользователь щелкает правой кнопкой мыши по таблице и по Enable для свойства задано значение 'on'.

  • Пользователь щелкает правой или левой кнопкой мыши по таблице и по Enable для свойства задано значение 'off' или 'inactive'.

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

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

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

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

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

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

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

Свойство

Описание

Примеры:

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

=

Сдвиг

Сдвиг-а

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 оценивает это выражение в базовом рабочем пространстве.

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

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

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

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

расширить все

Прерывание коллбэка, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

The Interruptible свойство определяет, можно ли прерывать выполняемый коллбэк. Существует два состояния коллбэка:

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

  • Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.

Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк (если он существует). The Interruptible свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание:

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

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

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

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

Примечание

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

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

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

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

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

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

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

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

  • Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.

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

  • 'queue' - Поместите прерывание обратного вызова в очередь вызовов, подлежащих обработке после концов обратного коллбэка.

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

Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк всегда пытается прервать выполнение текущего коллбэка. The Interruptible свойство объекта, чей коллбэк выполняется, определяет, разрешено ли прерывание. Если Interruptible установлено в:

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

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

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

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

Статус удаления, возвращенный как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState.

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

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

Возможность стать текущим объектом, заданная как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

Родитель/ребенок

расширить все

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

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

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

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

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

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

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

расширить все

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

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

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

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

Вопросы совместимости

расширить все

Не рекомендуемый запуск в R2020a

Введенный в R2008a