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.

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

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

Сохраните следующий код в spinnerValue.m на пути MATLAB. Этот код создает окно рисунка, содержащее ползунок и счетчик. Когда пользователь приложения изменяет значение счетчика, 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, а затем отпустите. Большой палец ползунка перемещается, чтобы указать значение счетчика.

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

Сохраните следующий код в showChangingValue.m на пути MATLAB. Этот код создает окно рисунка, содержащее ползунок и счетчик. Когда пользователь приложения изменяет значение счетчика, 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 коллбэк, чтобы определить, увеличивается или падает ли значение по сравнению с предыдущим значением счетчика. Установите цвет лампы на зеленый, когда значение увеличивается, и на красный, когда значение уменьшается

Сохраните следующий код в 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.

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: 10

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

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

Вы можете смешивать текст с операторами формата. Для примера:

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

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

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

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

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

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

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

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

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

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

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

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

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

Минимальное и максимальное значения счетчика, заданные как двухэлементный числовой массив. Первое значение должно быть меньше второго значения. Установите элементы массива в -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. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

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

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

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

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

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

  • Установите UpperLimitInclusive свойство к 'off'.

  • Установите LowerLimitInclusive свойство к 'off'.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Функции

Свойства

Введенный в R2016a