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ПанельГруппа кнопок, или GridLayout. Если вы не задаете родительский контейнер, MATLAB вызывает uifigure функция, чтобы создать новый Figure объект, который служит родительским контейнером.

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

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

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

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

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

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

Выпадающие элементы в виде массива ячеек из символьных векторов, массива строк или 1D категориального массива. Дублирующиеся элементы позволены. Выпадающие отображения компонента столько же опций сколько существуют элементы в 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]

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

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

Значение изменило коллбэк в виде одного из этих значений:

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

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

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

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

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

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

СвойствоЗначение
ValueВыпадающее значение компонента после нового взаимодействия пользователя приложения с ним.
PreviousValueВыпадающее значение компонента перед новым взаимодействием пользователя приложения с ним.
EditedЛогическое значение (0 или 1), который указывает, выполнялся ли коллбэк в результате ввода значения на выпадающий компонент. Edited значение равняется 1, когда пользователь приложения ввел в выпадающем компоненте и 0, когда пользователь приложения выбрал опцию от выпадающего компонента.
SourceКомпонент, который выполняет обратный вызов.
EventName'ValueChanged'

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

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

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

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

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

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

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

Функции

Свойства

Введенный в R2016a