uidropdown

Создайте раскрывающийся компонент

Описание

dd = uidropdown создает раскрывающийся список в новом окне рисунка и возвращает DropDown объект. MATLAB® вызывает uifigure функция для создания рисунка.

пример

dd = uidropdown(parent) создает раскрывающийся список в указанном родительском контейнере. Родительским элементом может быть Figure созданный с использованием uifigure функции или одного из дочерних контейнеров.

пример

dd = uidropdown(___,Name,Value) задает свойства объекта с помощью одного или нескольких Name,Value аргументы в виде пар. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах. Используйте Name,Value пара, Editable,'on' чтобы задать раскрывающийся компонент, который позволяет пользователю приложения вводить текст в раскрывающийся компонент или выбирать предопределенную опцию.

Примеры

свернуть все

Создайте раскрывающийся компонент с элементами по умолчанию.

fig = uifigure;
dd = uidropdown(fig);

При щелчке в любом месте раскрывающегося компонента он открывается.

Создайте раскрывающийся компонент и задайте опции.

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

Определите значение, связанное с выбранной опцией.

value = dd.Value
value =

    'Blue'

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

Связать значения данных с каждым раскрывающимся элементом компонента.

dd.ItemsData = [1 2 3 4];

Определите значение, связанное с выбранной опцией.

value = dd.Value
value =

3

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

fig = uifigure;
dd = uidropdown(fig,'Editable','on');

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

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

Сохраните следующий код в plotOptions.m на пути MATLAB. Этот код создает окно, содержащее график и раскрывающийся компонент. Когда пользователь приложения меняет раскрывающийся выбор компонента, ValueChangedFcn коллбэк изменяет цвет графика.

function plotOptions
fig = uifigure; 
fig.Position(3:4) = [440 320];

ax = uiaxes('Parent',fig,...
    'Position',[10 10 300 300]);

x = linspace(-2*pi,2*pi);
y = sin(x);
p = plot(ax,x,y);
p.Color = 'Blue';

dd = uidropdown(fig,...
    'Position',[320 160 100 22],...
    'Items',{'Red','Yellow','Blue','Green'},...
    'Value','Blue',...
    'ValueChangedFcn',@(dd,event) selection(dd,p));
end

% Create ValueChangedFcn callback:
function selection(dd,p)
val = dd.Value;
p.Color = val;
end

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

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

Сохраните следующий код в lampSize.m на пути MATLAB. Этот код создает окно рисунка, содержащее раскрывающийся компонент и лампу. Когда пользователь приложения меняет раскрывающийся выбор компонента, ValueChangedFcn коллбэк изменяет размер лампы.

function lampSize
% Create figure and components

fig = uifigure('Position',[100 100 300 275]);

lmp = uilamp(fig,...
    'Position',[100 30 20 20]);

dd = uidropdown(fig,...
    'Editable','on',...
    'Position',[84 204 100 20],...
    'Items',{'Size x 1','Size x 2','Size x 3','Size x 4'},...
    'ItemsData',[1 2 3 4],...
    'Value',1,...
    'ValueChangedFcn',@(dd,event) optionSelected(dd,lmp));
end

% Create ValueChangedFcn callback
function optionSelected(dd,lmp)
val = dd.Value;
s = [20 20];
switch val
    case {1, 2, 3, 4}  % User selected a defined option
        size = val * s;
        lmp.Position(3:4) = size;
    otherwise % User typed a value
        m = str2num(val);
        size = m * s;
        lmp.Position(3:4) = size;
end
end

Выполняйте lampSize и выберите различные опции из раскрывающегося компонента.

Введите значение в раскрывающемся компоненте и нажмите Enter. Изменяется размер лампы. (Если вы вводите большое значение, возможно, вам придется изменить размер рисунка, чтобы увидеть лампу.)

Входные параметры

свернуть все

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Items',{'Red','Yellow','Blue'} задает опции, представленные в раскрывающемся компоненте.

Перечисленные здесь свойства являются подмножеством доступных свойств. Полный список см. в разделе Свойства DropDown.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Значение изменило коллбэк, заданное как одно из следующих значений:

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

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

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

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

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

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

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

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

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

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

SourceКомпонент, который выполняет коллбэк.
EventName'ValueChanged'

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Функции

Свойства

Введенный в R2016a