exponenta event banner

Свойства раскрывающегося списка

Внешний вид и поведение раскрывающегося списка элементов управления

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

fig = uifigure;
dd = uidropdown(fig);
dd.Items = {'Red','Green','Blue'};

Раскрывающийся список

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

Значение, указанное как элемент Items или ItemsData массивы. По умолчанию Value является первым элементом в Items.

Определение Value как элемент Items выбирает раскрывающийся элемент, соответствующий этому элементу. Если ItemsData не пуст, то Value должен иметь значение элемента ItemsDataи в раскрывающемся списке будет выбран связанный элемент в списке.

Текст-местозаполнитель, заданный как вектор символа или скаляр строки. Местозаполнитель содержит краткое описание раскрывающихся элементов. Текст-заполнитель появляется только при отображении раскрывающегося списка ''. Есть две ситуации, когда это происходит:

  • Value свойство имеет значение ''.

  • Value свойство имеет значение элемента ItemsData чья соответствующая позиция ''.

Например, чтобы отобразить местозаполнитель в раскрывающемся списке без ItemsData, добавить '' кому Items и установите Value свойство для '':

fig = uifigure('Position',[100 100 300 200]);
dd = uidropdown(fig,'Items',{'','One','Two'}, ...
                'Value','', ...
                'Placeholder','Options');

Раскрывающиеся элементы, указанные как массив ячеек из векторов символов, строкового или 1-D категориального массива. Допускаются повторяющиеся элементы. Раскрывающийся компонент отображает столько опций, сколько элементов в Items массив. Если это свойство указано как категориальный массив, MATLAB ® использует значения в массиве, а не полный набор категорий.

Пример: {'Red','Yellow','Blue'}

Пример: {'1','2','3'}

Данные, связанные с каждым элементом Items значение свойства, указанное как числовой массив 1 на n или массив ячеек 1 на n. Допускаются повторяющиеся элементы.

Например, если задать Items для имен сотрудников, вы можете установить ItemsData значение для соответствующих идентификационных номеров сотрудников. ItemsData значение не отображается для пользователя приложения.

Если количество элементов массива в ItemsData значение и Items значение не совпадает, происходит одно из следующих событий:

  • Когда ItemsData пустое значение, то все элементы Items значения представляются пользователю приложения.

  • Когда ItemsData значение имеет больше элементов, чем Items значение, то все элементы Items значения представляются пользователю приложения. MATLAB игнорирует дополнительное ItemsData элементы.

  • Когда ItemsData значение не является пустым, но содержит меньше элементов, чем Items значение, единственные элементы Items значения, представленные пользователю приложения, имеют соответствующий элемент в ItemsData значение.

Пример: {'One','Two','Three'}

Пример: [10 20 30 40]

Шрифт и цвет

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

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

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

Пример: 'Arial'

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

Пример: 14

Вес шрифта, указанный как одно из следующих значений:

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

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

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

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

Цвет шрифта, указанный как триплет 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, шестнадцатеричный код цвета или один из параметров цвета, перечисленных в таблице.

Триплеты 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'

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

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

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

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

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

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

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

Если Enable значение свойства - 'off', то пользователь приложения не может изменить текст раскрывающегося компонента, даже если значение свойства Editable равно 'on'.

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

  • Если для этого свойства задано значение 'on'пользователь приложения может взаимодействовать с компонентом.

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

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

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

Положение

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

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

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

Все измерения представлены в единицах пикселей.

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

Пример: [100 100 100 22]

Внутреннее расположение и размер раскрывающегося компонента, указанные как [left bottom width height]. Значения позиции относятся к родительскому контейнеру. Все измерения представлены в единицах пикселей. Это значение свойства идентично Position для раскрывающихся компонентов.

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

Внешнее расположение и размер раскрывающегося компонента, возвращенного как [left bottom width height]. Значения позиции относятся к родительскому контейнеру. Все измерения представлены в единицах пикселей. Это значение свойства идентично Position для раскрывающихся компонентов.

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

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

g = uigridlayout([4 3]);
dd = uidropdown(g);
dd.Layout.Row = 3;
dd.Layout.Column = 2;

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

dd.Layout.Column = [2 3];

Отзывы

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

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

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

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

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

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

Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя с раскрывающимся списком. MATLAB передает эту информацию в ValueChangedData объект в качестве второго аргумента функции обратного вызова. В App Designer аргумент называется event. Можно запросить свойства объекта с помощью точечной нотации. Например, event.PreviousValue возвращает предыдущее значение раскрывающегося списка. ValueChangedData недоступен для функций обратного вызова, указанных как векторы символов.

В следующей таблице перечислены свойства ValueChangedData объект.

СобственностьСтоимость
ValueЗначение раскрывающегося компонента после последнего взаимодействия с ним пользователя приложения.
PreviousValueЗначение раскрывающегося компонента перед последним взаимодействием с ним пользователя приложения.
Edited

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

  • 0 (false) - пользователь приложения выбрал или ввел элемент Items свойства раскрывающегося компонента.

  • 1 (true) - пользователь приложения ввел значение, которое не является элементом Items свойства раскрывающегося компонента.

SourceКомпонент, выполняющий обратный вызов.
EventName'ValueChanged'

Дополнительные сведения о записи обратных вызовов см. в разделе Запись обратных вызовов в App Designer.

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

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

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

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

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

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

Установка CreateFcn свойство существующего компонента не оказывает никакого влияния.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Родительский контейнер, указанный как Figure объект, созданный с помощью uifigure функцию или один из ее дочерних контейнеров: Tab, Panel, ButtonGroup, или GridLayout. Если контейнер не указан, MATLAB вызывает uifigure для создания новой функции Figure объект, который служит родительским контейнером.

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

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

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

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

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

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

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

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

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

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

См. также

Функции

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