exponenta event banner

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

Управление внешним видом и поведением компонентов пользовательского интерфейса таблицы в 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около-n массив ячеек, MATLAB сохраняет и возвращает значение в виде nоколо-1 массив ячеек. При указании mоколо-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около-n массив ячеек.

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

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

Выбор параметра «Автоматическая ширина» в редакторе свойств таблицы имеет тот же эффект, что и установка параметра 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около-n array - этот массив указывает, какие столбцы можно редактировать. Значение n равно количеству столбцов в таблице. Каждое значение в массиве соответствует столбцу таблицы. Значение true в массиве делает ячейки в этом столбце редактируемыми. Значение false делает ячейки в этом столбце неизменяемыми.

  • Логический скаляр - таблица целиком редактируется или не редактируется .

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

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

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

Формат отображения ячеек, указанный как пустой массив ячеек или 1около-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 описание для примера.

A 1около-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 функция.Таблица отображает логические значения в виде флажков.

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

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

  • 'numbered' - Заголовки строк представляют собой последовательные номера, начинающиеся с 1.

  • Массив ячеек векторов символов или категориальный массив - каждый элемент массива становится именем строки. Имена строк ограничены одной строкой текста. Если указать 1около-n массив ячеек, MATLAB сохраняет и возвращает значение в виде nоколо-1 массив ячеек. При указании mоколо-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. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

Примечание

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

Шрифт

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

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

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

Пример: 'Arial'

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

Пример: 12

Пример: 12.5

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

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

  • 'bold' - Более толстые очертания символов, чем обычно

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

Примечание

'light' и 'demi' значения веса шрифта удалены в R2014b. При указании любого из этих значений получается обычный вес шрифта.

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

Примечание

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

  • 'on' - Просмотр объекта.

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

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

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

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

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

  • '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 объект, созданный с помощью uicontextmenu функция. Это свойство используется для отображения контекстного меню при щелчке правой кнопкой мыши на компоненте.

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

Примечание

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. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

Положение

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

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

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

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

Примечание

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

Используйте 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 объекта graphics root:

  • Ширина символа = ширина буквы 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 или1+1, converttonum устанавливает значение ячейки таблицы в числовое представление входных данных. Из-за отсутствия ошибки при возврате converttonum функция, недопустимые выражения возвращают ошибку, и новое значение ячейки таблицы становится NaN.

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

  • Дескриптор функции.

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

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

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

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

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

  • Выбор прямоугольной группы ячеек с помощью клавиши Shift при выборе ячеек

  • Отмена выделения ячейки путем щелчка на ней при нажатой клавише Ctrl

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

Собственность

Описание

Indices

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

Source

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

EventName

'CellSelection'

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

  • Дескриптор функции.

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

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

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

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

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

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

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

Управление выполнением обратного вызова

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пользовательские данные, указанные как любой массив. Определение UserData может быть полезен для совместного использования данных в приложениях. Дополнительные сведения см. в разделе Совместное использование данных среди обратных вызовов.

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

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

Не рекомендуется начинать с R2020a

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