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

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

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

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

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

Таблица

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

Табличные данные, заданные как один из следующих типов массива:

  • Табличный массив — Отображения любая комбинация типов данных, которые массивы table поддерживают, такие как datetime, duration и categorical.

  • Числовой массив — числовые значения Отображений, такие как double или single.

  • Логический массив — флажки Displays. значения true соответствуют установленным флажкам, тогда как значения false не проверяются.

  • Символьный массив — символы Отображений и текст.

  • Массив ячеек — Отображения любая комбинация числовых, logical или значений char.

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

Задайте табличный массив

Табличные массивы обеспечивают удобный способ хранить табличные данные как переменную MATLAB®. table, readtable и функции array2table создают табличные массивы. В отличие от этого, функция uitable создает компонент Table UI (компонент пользовательского интерфейса для приложения).

Когда вы задаете свойство Data компонента Table UI как табличный массив, MATLAB устанавливает формат компонента Table UI автоматически на основе значений в табличном массиве:

  • По умолчанию имена столбцов, отображенные в приложении, совпадают со свойством VariableNames табличного массива. Изменение свойства ColumnName компонента Table UI обновит пользовательский интерфейс, но это не обновит имена переменных в табличном массиве.

  • По умолчанию имена строки, отображенные в приложении, совпадают со свойством RowNames табличного массива. Изменение свойства RowName компонента Table UI обновит пользовательский интерфейс, но это не обновит имена строки в табличном массиве.

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

Для получения дополнительной информации об отображающихся табличных данных массива смотрите Табличные Типы данных массива в Приложениях App Designer.

Задайте числовое, логическое, символ или массив ячеек

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

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

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

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

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

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

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

Если вы задаете свойство Data как табличный массив, то имена столбцов по умолчанию совпадают со свойством VariableNames табличного массива. Изменение свойства ColumnName компонента Table UI обновит пользовательский интерфейс, но это не обновит имена переменных в табличном массиве.

Пример: t = uitable (uifigure, 'ColumnName', {'Имя'; 'Номер'} ', Данные', {'Боб' 5})

Пример: t = uitable (uifigure, 'ColumnName', {'Имя'; []}, 'Данные', {'Боб' 5})

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

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

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

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

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

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

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

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

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

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

Пример: t = uitable (uifigure, 'Данные', rand (10,3), 'ColumnEditable', [ложная истинная истина])

Пример: t = uitable (uifigure, 'Данные', rand (10,3), 'ColumnEditable', ложь)

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

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

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

Не устанавливайте это свойство, когда свойство Data будет содержать массив table. Для получения дополнительной информации смотрите Табличные Типы данных массива в Приложениях App Designer.

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

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

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

Описание

'char'

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

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

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

логический

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

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

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

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

Числовой

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

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

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

Массив ячеек из символьных векторов 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 = uifigure;
myData = {'Andrew' 31 'Male' 'Choose'; ...
          'Bob' 41 'Male' 'Choose';  ...
          'Anne' 20 'Female' 'Choose';};
t = uitable('Parent', f,...
            'Position', [100 100 334 78],...            
            'ColumnFormat',({[] [] [] {'group 1' 'group 2'}}),... 
            'ColumnEditable', true,...
            'Data', myData);

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

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

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

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

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

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

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

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

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

Если вы задаете свойство Data как табличный массив, то имена строки по умолчанию совпадают со свойством RowNames табличного массива. Изменение свойства RowName компонента Table UI обновит пользовательский интерфейс, но это не обновит имена строки в табличном массиве.

Пример: t = uitable (uifigure, 'RowName', {'Имя'; 'Номер'} ', Данные', {'Боб'; 5})

Пример: t = uitable (uifigure, 'RowName', {'Имя'; []}, 'Данные', {'Боб'; 5})

Шрифт

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

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

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

Пример: 'Arial'

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

Пример: 14

Толщина шрифта, заданная как одно из этих значений:

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

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

Не все шрифты имеют полужирное начертание шрифта. Поэтому установка жирного шрифта привести к установке обычного шрифта.

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

Модули размера шрифта, заданный 'pixels'.

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

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

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

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

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

  • 'on' – Таблица является операционной.

  • 'off' Таблица появляется grayed и не отвечает на взаимодействие с пользователем.

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

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

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

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

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

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]

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

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

Пример: t = uitable (uifigure, 'Данные', rand (10,3), 'BackgroundColor', [0.85 0.85 1])

Пример: t = uitable (uifigure, 'Данные', rand (10,3), 'BackgroundColor', [1 1 1; 0.85 0.85 1])

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

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

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

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

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

Положение

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

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

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

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

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

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

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

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

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

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

Параметры макета, заданные как объект GridLayoutOptions. Это свойство задает опции для компонентов, которые являются дочерними элементами контейнеров макетов сетки. Если компонент не является дочерним элементом контейнера макетов сетки (например, это - дочерний элемент фигуры или панели), то это свойство пусто и не имеет никакого эффекта. Однако, если компонент является дочерним элементом контейнера макетов сетки, можно поместить компонент в желаемую строку и столбец сетки путем установки свойств Row и Column на объекте GridLayoutOptions.

Например, этот код помещает компонент таблицы UI в третью строку и второй столбец ее родительской сетки.

g = uigridlayout([4 3]);
t = uitable(g,'Data',rand(10,3));
t.Layout.Row = 3;
t.Layout.Column = 2;

Чтобы заставить таблицу охватить несколько строк или столбцов, задайте свойство Row или Column как двухэлементный вектор. Например, эта таблица охватывает столбцы 2 через 3:

t.Layout.Column = [2 3];

Обратные вызовы

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

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

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

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

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

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

Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя с ячейкой (такой как индексы ячейки). MATLAB передает эту информацию в объекте CellEditData в качестве второго аргумента к вашей функции обратного вызова. In App Designer, the argument is called event. You can query the object properties using dot notation., Например, event.Indices возвращает индексы выбранной ячейки. Объект CellEditData не доступен функциям обратного вызова, заданным как векторы символов.

Следующая таблица описывает свойства объекта CellEditData.

Свойство

Описание

Indices

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

PreviousData

Это - предыдущие данные ячейки. Значением по умолчанию является пустая матрица, []. Если отредактированное значение является элементом в многостолбцовой переменной табличного массива, PreviousData содержит все значения в столбце.

EditData

Это - вводимое пользователями значение. Если отредактированное значение является элементом в многостолбцовой переменной табличного массива, EditData содержит отредактированное значение в рамках столбца.

NewData

Это - значение, которое MATLAB записал в массив свойства Data. Если отредактированное значение является элементом в многостолбцовой переменной табличного массива, NewData содержит все значения для столбца.

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

Ошибка

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

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

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

Source

Это - компонент, который выполняет обратный вызов.

EventName

'CellEdit'

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

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

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

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

Для получения дополнительной информации о записи обратных вызовов, смотрите Обратные вызовы Записи в App Designer.

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

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

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

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

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

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

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

Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя с ячейкой (такой как индексы ячейки). MATLAB передает эту информацию в объекте CellSelectionChangeData в качестве второго аргумента к вашей функции обратного вызова. In App Designer, the argument is called event. You can query the object properties using dot notation., Например, event.Indices возвращает индексы выбранной ячейки. Объект CellSelectionChangeData не доступен функциям обратного вызова, заданным как векторы символов.

Следующая таблица описывает свойства объекта CellSelectionChangeData.

Свойство

Описание

Indices

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

Source

Это - компонент, который выполняет обратный вызов.

EventName

'CellSelection'

Для получения дополнительной информации о записи обратных вызовов, смотрите Обратные вызовы Записи в App Designer.

Функция создания объекта, заданная как одно из этих значений:

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

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

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

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

Это свойство задает функцию обратного вызова, чтобы выполниться, когда MATLAB создает объект. MATLAB initializes all property values before executing the CreateFcn callback. If you do not specify the CreateFcn property, then MATLAB executes a default creation function.

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

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

Функция удаления объекта, заданная как одно из этих значений:

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

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

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

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

Это свойство задает функцию обратного вызова, чтобы выполниться, когда MATLAB удаляет объект. MATLAB executes the DeleteFcn callback before destroying the properties of the object. If you do not specify the DeleteFcn property, then MATLAB executes a default deletion function.

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

  • отмена Не выполняет прерывание обратного вызова.

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

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

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

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

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

Родительский контейнер, заданный как Figure, создал использование функции uifigure или одного из ее дочерних контейнеров: Tab, Panel, ButtonGroup или GridLayout.

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

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

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

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

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

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

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

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

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

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

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

Смотрите также

Введенный в R2017b

Была ли эта тема полезной?