Создайте компонент счетчика
создает счетчик в новом окне рисунка и возвращает spn
= uispinnerSpinner
объект. MATLAB® вызывает 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
определяет, увеличивается или уменьшается значение, и соответственно устанавливает цвет лампы.
parent
- Родительский контейнерFigure
объект (по умолчанию) | Panel
| объекта Tab
| объекта ButtonGroup
| объекта GridLayout
объектРодительский контейнер, заданный как Figure
объект, созданный с использованием uifigure
функция, или один из ее дочерних контейнеров: Tab
, Panel
, ButtonGroup
, или GridLayout
. Если вы не задаете родительский контейнер, MATLAB вызывает uifigure
функция для создания нового Figure
объект, который служит родительским контейнером.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Value',150
указывает, что в счетчике появляется число 50.Перечисленные здесь свойства являются подмножеством доступных свойств. Полный список см. в разделе Свойств объекта Spinner.
'Value'
- Значение СчетчикаЗначение счетчика, заданное как число двойной точности.
Когда пользователь приложения вводит значение в счетчик, значение является вектором символов. Когда пользователь приложения нажимает клавишу Enter или меняет особое внимание, MATLAB преобразует значение, введенное пользователем приложения, в число с двойной точностью.
MATLAB отклоняет значение, если:
Он не может преобразовать вектор символов в скалярное число.
Значение является NaN, пустым или комплексным числом.
Значение является математическим выражением, таким как 1+2
.
Значение меньше или больше значений, заданных Limits
свойство.
Когда MATLAB отклоняет значение, введенное пользователем приложения, появляется всплывающая подсказка, описывающая требования к значениям. Счетчик немедленно возвращается к своему предыдущему значению и нет ValueChangedFcn
выполняется.
Пример: 10
'ValueDisplayFormat'
- Формат отображения значения'%11.4g'
(по умолчанию) | символьный вектор | строковый скалярФормат отображения значения, заданный как вектор символов или строковый скаляр.
MATLAB использует sprintf
отображение значения в заданном формате.
Вы можете смешивать текст с операторами формата. Для примера:
spin = uispinner('ValueDisplayFormat','%.0f MS/s');
Получившийся компонент счетчика выглядит следующим образом:
Когда пользователь приложения кликает в поле счетчик, в поле отображается значение без текста.
Полный список поддерживаемых операторов формата см. в разделе sprintf
.
'RoundFractionalValues'
- Округление дробных значений'off'
(по умолчанию) | логическое значение включения/выключенияОкругление дробных значений, введенных пользователями приложения, задается как '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'
и отобразит сообщение об ошибке.
'Step'
- Количество, на которое значение увеличивается или уменьшается1
(по умолчанию) | числовой скалярКоличество, которым Value
свойства увеличиваются или уменьшаются, когда пользователь приложения нажимает стрелы вверх и вниз, соответственно.
'Limits'
- Минимальное и максимальное значения счетчика[-Inf Inf]
(по умолчанию) | двухэлементный числовой массивМинимальное и максимальное значения счетчика, заданные как двухэлементный числовой массив. Первое значение должно быть меньше второго значения. Установите элементы массива в -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]
'LowerLimitInclusive'
- Нижний предел инклюзивности'on'
(по умолчанию) | логическое значение включения/выключенияНижний предел включительности, заданная как 'on'
или 'off'
, или как числовое или логическое 1
(true
) или 0
(false
). Значение 'on'
эквивалентно true
, и 'off'
эквивалентно false
. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState
.
'on'
- Значение должно быть равно или больше нижнего предела.
'off'
- Значение должно быть больше нижнего предела.
'UpperLimitInclusive'
- Верхний предел включительности'on'
(по умолчанию) | логическое значение включения/выключенияВерхний предел включительности, заданный как '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'
.
'ValueChangedFcn'
- Изменение значения коллбэка''
(по умолчанию) | указатель на функцию | массив ячеек | вектор символовЗначение изменило коллбэк, заданное как одно из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Этот коллбэк выполняется, когда пользователь меняет особое внимание или нажимает клавишу Enter после изменения значения счетчика. Неважно, изменяет ли пользователь значение счетчика путем набора текста или нажатием клавиш со стрелами. Коллбэк не выполняется, если значение счетчика изменяется программно.
Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя со счетчиком. MATLAB передает эту информацию в ValueChangedData
объект как второй аргумент функции обратного вызова. В App Designer аргумент называется event
. Вы можете запросить свойства объекта с помощью записи через точку. Для примера, event.PreviousValue
возвращает предыдущее значение счетчика. The ValueChangedData
объект недоступен для функций обратного вызова, заданных как векторы символов.
В следующей таблице перечислены свойства ValueChangedData
объект.
Свойство | Значение |
---|---|
Value | Значение счетчика после последнего взаимодействия пользователя приложения с ним |
PreviousValue | Значение счетчика перед самым последним взаимодействием пользователя приложения с ним |
Source | Компонент, который выполняет коллбэк |
EventName | 'ValueChanged' |
Для получения дополнительной информации о записи коллбэков см. Раздел «Запись коллбэков в App Designer».
'ValueChangingFcn'
- Изменение значения коллбэка''
(по умолчанию) | указатель на функцию | массив ячеек | вектор символовИзменение значения коллбэка, заданное как одно из следующих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символов, содержащий допустимое выражение 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».
'Position'
- Расположение и размер счетчика[100 100 100 22]
(по умолчанию) | [left bottom width height]
Расположение и размер счетчика относительно родительского контейнера, заданные как вектор [left bottom width height]
. Эта таблица описывает каждый элемент в векторе.
Элемент | Описание |
---|---|
left | Расстояние от внутреннего левого края родительского контейнера до внешнего левого края счетчика |
bottom | Расстояние от внутреннего нижнего ребра родительского контейнера до внешнего нижнего ребра счетчика |
width | Расстояние между правым и левым внешними краями счетчика |
height | Расстояние между верхним и нижним внешними краями счетчика |
Все измерения указаны в пикселях модулей.
The Position
значения относятся к drawable area родительского контейнера. Область векторной и растровой графики является областью внутри границ контейнера и не включает область, занимаемую украшениями, такими как панель меню или заголовок.
Пример: [100 100 100 22]
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.