exponenta event banner

uispinner

Создание компонента вращателя

Описание

spn = uispinner создает спиннер в новом окне фигуры и возвращает Spinner объект. MATLAB ® вызывает uifigure для создания фигуры.

пример

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

пример

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

Примеры

свернуть все

fig = uifigure;
spn = uispinner(fig);

Создание вращателя на панели.

fig = uifigure;
pnl = uipanel(fig);
spn = uispinner(pnl);

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

Создайте спиннер.

fig = uifigure;
spn = uispinner(fig);

Определите пределы. Возвращаемые значения указывают, что нижний и верхний пределы не ограничены.

limits = spn.Limits
limits =

  -Inf   Inf

Установите предельные значения 0 и 100.

spn.Limits = [0 100];

Создайте спиннер, позволяющий пользователю приложения вводить значение больше -5 и меньше или равное 10.

fig = uifigure;
spn = uispinner(fig,'Limits', [-5  10],...
            'LowerLimitInclusive','off',...
            'UpperLimitInclusive','on',...
            'Value', 5);

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

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

fig = uifigure;
spn = uispinner(fig,'ValueDisplayFormat', '%.2f');

Запустите код, а затем введите 5,555. Щелкните за пределами вращателя. Вращатель отображает 5,55.

MATLAB сохраняет исходное значение, 5,555.

Щелкните вращатель, чтобы отобразить первоначально введенное значение.

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

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

function spinnervalue
fig = uifigure('Position',[100 100 370 280]);

sld = uislider(fig,...
    'Position',[90 220 120 3]);

spn = uispinner(fig,...
    'Position',[100 140 100 22],...
    'Limits',sld.Limits,...
    'ValueChangedFcn',@(spn,event) updateSlider(spn,sld));
end

% Create ValueChangedFcn callback
function updateSlider(spn,sld)
sld.Value = spn.Value;
end

Управляемый spinnerValue.

Щелкните и удерживайте стрелку вверх в вращателе, пока значение не достигнет 24, а затем отпустите кнопку. Ползунок перемещается для указания значения вращателя.

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

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

function showChangingValue
fig = uifigure('Position',[100 100 370 280]);
sld = uislider(fig,...
    'Position',[90 220 120 3]);

spn = uispinner(fig,...
    'Position',[100 140 100 22],...
    'Limits',sld.Limits,...
    'ValueChangingFcn',@(spn,event) spinnerChanging(event,sld));
end

% Create ValueChangingFcn callback
function spinnerChanging(event,sld)
sld.Value = event.Value;
end

Управляемый showChangingValue.

Щелкните и удерживайте стрелку вверх в вращателе, пока значение не достигнет 24, а затем отпустите кнопку. Ползунок перемещается при изменении значения вращателя.

Кодировать ValueChangedFcn обратный вызов, чтобы определить, растет или падает значение по сравнению с предыдущим значением spinner. Установка зеленого цвета лампы при увеличении значения и красного цвета при уменьшении значения

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

function upOrDown
fig = uifigure(...
    'Position',[100 100 190 170]);

lmp = uilamp(fig,...
    'Position',[90 50 20 20],...
    'Color','green');

spn = uispinner(fig,...
    'Position',[50 100 100 22],...
    'ValueChangedFcn',@(spn,event) spinnerValueChanged(event,lmp));
end

% Create ValueChangedFcn that uses event data
function spinnerValueChanged(event,lmp)
newValue = event.Value;
previousValue = event.PreviousValue;
difference = newValue-previousValue;
if difference > 0
    lmp.Color = 'green';
else
    lmp.Color = 'red';
end
end

Управляемый upOrDown.

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

Входные аргументы

свернуть все

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

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

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

Пример: 'Value',150 указывает, что число 50 отображается в вращателе.

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

Значение Spinner, указанное как число с двойной точностью.

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

MATLAB отклоняет значение, если:

  • Он не может преобразовать вектор символов в скалярное число.

  • Значением является NaN, пустое или комплексное число.

  • Значение является математическим выражением, таким как 1+2.

  • Значение меньше или больше значений, указанных Limits собственность.

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

Пример: 10

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

MATLAB использует sprintf для отображения значения в указанном формате.

Текст можно смешивать с операторами формата. Например:

spin = uispinner('ValueDisplayFormat','%.0f MS/s');

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

Когда пользователь приложения щелкает в поле spinner, в поле отображается значение без текста.

Полный список поддерживаемых операторов формата см. в разделе sprintf.

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

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

  • 'off' - MATLAB не округляет дробное значение до целого числа.

Если RoundFractionalValues значение свойства изменяется с 'off' кому 'on' программно, тогда MATLAB применяет следующие правила:

  • Если округление существующего значения приводит к целому числу, лежащему внутри предельного диапазона, заданного параметром Limits затем MATLAB округляет существующее значение.

  • Если округление существующего значения приводит к целому числу, которое меньше нижнего предела, то MATLAB округляет существующее значение.

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

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

Количество, на которое Value увеличивается или уменьшается, когда пользователь приложения нажимает стрелки вверх и вниз соответственно.

Минимальное и максимальное значения spinner, заданные как двухэлементный числовой массив. Первое значение должно быть меньше второго. Задать для элементов массива значение -Inf или Inf для указания минимального или максимального значения соответственно.

При изменении Limits такой, что Value выходит за новые пределы, MATLAB устанавливает Value для значения в новых пределах. Например, предположим, что Limits свойство - [0 100] и Value свойство - 20. Если Limits изменение свойства в [50 100], то MATLAB устанавливает Value свойство до 50 (при условии, что LowerLimitInclusive значение равно 'on'.

Пример: [-Inf 200]

Пример: [-100 Inf]

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

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

  • 'on' - Значение должно быть равно или больше нижнего предела.

  • 'off' - Значение должно быть больше нижнего предела.

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

  • 'on' - Значение должно быть меньше или равно верхнему пределу.

  • 'off' - Значение должно быть меньше верхнего предела.

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

  • Установите Limits значение свойства для [0 1].

  • Установите UpperLimitInclusive свойство для 'off'.

  • Установите LowerLimitInclusive свойство для 'off'.

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

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

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

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

Этот обратный вызов выполняется, когда пользователь меняет фокус или нажимает клавишу Enter после изменения значения spinner. Не имеет значения, изменяет ли пользователь значение вращателя путем ввода или нажатия клавиш со стрелками. Обратный вызов не выполняется, если значение spinner изменяется программно.

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

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

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

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

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

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

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

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

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

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

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

СобственностьСтоимость
ValueТекущее значение спиннера при взаимодействии с ним пользователя приложения
SourceКомпонент, выполняющий обратный вызов
EventName'ValueChanging'

Value имущества Spinner не обновляется до тех пор, пока пользователь приложения не отпустит клавишу со стрелкой. Поэтому, чтобы получить значения во время нажатия клавиши со стрелкой, код должен получить Value имущества ValueChangingData объект.

Обратный вызов выполняется следующим образом:

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

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

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

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

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

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

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

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

См. также

Функции

Свойства

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