uilistbox

Создайте компонент поля списка

Синтаксис

lb = uilistbox
lb = uilistbox(parent)
lb = uilistbox(___,Name,Value)

Описание

lb = uilistbox создает поле списка в новом окне рисунка и возвращает объект ListBox. MATLAB® вызывает функцию uifigure, чтобы создать фигуру.

пример

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

пример

lb = uilistbox(___,Name,Value) задает свойства ListBox с помощью одного или нескольких аргументов пары Name,Value. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте поле списка в окне рисунка.

fig = uifigure('Position', [100 100 300 250]);
lbx = uilistbox(fig);

Создайте поле списка.

fig = uifigure;
lbx = uilistbox(fig);

Определите, позволяет ли поле списка множественные выборы.

multi = lbx.Multiselect
multi =

     off

Включите мультивыбор.

lbx.Multiselect = 'on';

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

Сохраните следующий код как selectlistbox.m на вашем пути MATLAB.

Этот код создает приложение, содержащее поле списка и текстовую область. Коллбэк ValueChangedFcn обновляет текстовую область, чтобы отобразить выбор поля списка.

function selectlistbox

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

% Create text area
txt = uitextarea(fig,...
    'Position',[125 90 100 22],...
    'Value','First');

% Create list box
lbox = uilistbox(fig,...
    'Position',[125 120 100 78],...
    'Items',{'First','Second','Third'},... 
    'ValueChangedFcn', @updateEditField); 

% ValueChangedFcn callback
function updateEditField(src,event) 
    txt.Value = src.Value;
end

end

Запустите selectlistbox и выберите опцию из списка.

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

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

function dataselection
fig = uifigure('Position',[100 100 350 275]);

% Create Numeric Edit Field
ef = uieditfield(fig,'numeric',...
    'Position',[125 90 100 22]);

% Create List Box
lbox = uilistbox(fig,...
    'Items', {'Freezing', 'Warm', 'Hot', 'Boiling'},...
    'ItemsData', [0, 25, 40, 100],...
    'Position',[125 120 100 78],...
    'ValueChangedFcn', @selectionChanged);

% ValueChangedFcn callback
function selectionChanged(src,event)
    % Display list box data in edit field
    ef.Value = src.Value;
end

end

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

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

Сохраните следующий код как multiselect.m на вашем пути MATLAB.

function multiselect
fig = uifigure('Position',[100 100 350 275]);

% Create Text Area
txt = uitextarea(fig,...
    'Position',[125 80 100 50]);

% Create List Box
lbox = uilistbox(fig,...
    'Position',[125 150 100 78],...
    'Multiselect','on',...
    'ValueChangedFcn',@selectionChanged);

% ValueChangedFcn callback
function selectionChanged(src,event)
    txt.Value = src.Value;
end

end

Запустите multiselect и выберите элементы из списка. Текстовая область отображает ваш выбор.

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

свернуть все

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

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

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

Пример: 'Items',{'Model 1','Model 2', 'Model 3', 'Model 4'} задает опции поля списка, которые пользователь приложения видит, сверху донизу.

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

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

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

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

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

Данные, сопоставленные с каждым элементом значения свойства 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'. Установите это свойство на 'on' позволять пользователям выбирать несколько элементов одновременно.

Значение измененная функция, заданная как одно из этих значений:

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

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

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

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

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

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

СвойствоЗначение
ValueЗначение поля списка после нового взаимодействия пользователя приложения с ним
PreviousValueЗначение поля списка перед новым взаимодействием пользователя приложения с ним
SourceКомпонент, который выполняет обратный вызов
EventName'ValueChanged'

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

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

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

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

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

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

Советы

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

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

Функции

Свойства

Введенный в R2016a

Для просмотра документации необходимо авторизоваться на сайте