(App Designer) Создает компонент счетчика
Используйте только с App Designer или фигурами, созданными с функцией uifigure
. Приложения, созданные с GUIDE или функцией figure
, не поддерживают компоненты счетчика.
spn = uispinner
spn = uispinner(parent)
spn = uispinner(___,Name,Value)
создает счетчик в новом окне фигуры и возвращает объект spn = uispinner
Spinner
. MATLAB® вызывает функцию uifigure
, чтобы создать фигуру.
создает счетчик в заданном родительском контейнере. Родительский элемент может быть созданным использованием spn = uispinner(parent)
Figure
функции uifigure
или одного из ее дочерних контейнеров.
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 % Create figure window and components fig = uifigure('Position',[100 100 350 275]); % Create a slider sld = uislider(fig,... 'Position',[90 220 120 3]); % Create a spinner spn = uispinner(fig,... 'Position',[100 140 100 22],... '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 % Create figure window and components fig = uifigure('Position',[100 100 350 275]); sld = uislider(fig,... 'Position',[90 220 120 3]); spn = uispinner(fig,... 'Position',[100 140 100 22],... '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 % Create figure window fig = uifigure(... 'Position',[100 100 189 171]); % Create Lamp lmp = uilamp(fig,... 'Position',[90 50 20 20],... 'Color','green'); % Create Spinner 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
.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Имя
должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Значение', 150
указывает, что номер 50 появляется в счетчике.Свойства, перечисленные здесь, являются подмножеством доступных свойств. Для полного списка см. Свойства объекта Spinner.
Значение
Значение счетчикаЗначение счетчика, заданное как с двойной точностью номер.
Когда пользователь приложения вводит значение в счетчике, значение является вектором символа. Когда пользователь приложения нажимает клавишу ENTER или изменяет особое внимание, MATLAB преобразовывает вводимое в пользователя приложения значение в с двойной точностью номер.
MATLAB отклоняет значение если:
Это не может преобразовать вектор символа в скалярный номер.
Значением является NaN, пробел или комплексное число.
Значение является математическим выражением, таким как 1+2
.
Значение является меньше, чем или больше, чем значения, заданные свойством Limits
.
Когда MATLAB отклоняет вводимое в пользователя приложения значение, подсказка кажется описывающей требования значения. Счетчик сразу возвращается к его предыдущему значению и никаким выполнениям ValueChangedFcn
.
Пример: 10
ValueDisplayFormat
ValueDisplayFormat '%11.4g'
(значение по умолчанию) | вектор символа | представляет скаляр в виде строкиФормат отображения значения, заданный как вектор символа или скаляр строки.
MATLAB использует sprintf
, чтобы отобразить значение с помощью заданного формата.
Можно смешать текст с операторами формата. Например:
spin = uispinner('ValueDisplayFormat','%.0f MS/s');
Получившийся компонент счетчика выглядит так:
Когда нажатия кнопки пользователя приложения в поле счетчика, поле показывает значение без текста.
Для полного списка операторов поддерживаемого формата смотрите sprintf
.
RoundFractionalValues
Округление дробных значений'off'
(значение по умолчанию) | 'on'
Округление дробных значений вводится пользователями приложения, заданными как одно из следующего:
'on'
— MATLAB округляет значение, если это приводит к допустимому значению и выполняет обратный вызов ValueChangedFcn
. Если получившееся значение вне более низкого или верхнего Limits
, то раунды MATLAB к самому близкому значению, которое находится в пределах Limits
и затем выполняет обратный вызов.
'off'
MATLAB не делает вокруг дробного значения к целому числу.
Если значение свойства RoundFractionalValues
изменяется от 'off'
до 'on'
программно, то MATLAB применяет эти правила:
Если округление существующего значения приводит к целому числу, которое находится в предельной области значений, заданной свойством Limits
, затем MATLAB окружает существующее значение.
Если округление существующего значения приводит к целому числу, которое является меньше, чем нижний предел, затем MATLAB окружает существующее значение.
Если округление существующего значения приводит к целому числу, которое больше, чем верхний предел, затем MATLAB округляет существующее значение в меньшую сторону.
Если пределы сконфигурированы таким образом, что нет никакого допустимого целого числа в области значений, то MATLAB задерживает значение свойства RoundFractionalValues
к 'off'
и отображает сообщение об ошибке.
шаг
Количество, которым значение постепенно увеличивается или постепенно уменьшается1
(значение по умолчанию) | числовой скалярКоличество, который инкременты свойства Value
или декременты, когда пользователь приложения нажимает стрелки вверх и вниз, соответственно.
'Limits'
— Минимальные и максимальные значения счетчикаМинимальные и максимальные значения счетчика, заданные как двухэлементный числовой массив. Первое значение должно быть меньше, чем второе значение. Установите элементы массива на -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'
(значение по умолчанию) | 'off'
Толерантность нижнего предела, заданная как одно из следующего:
'on'
— Значение должно быть равным или больше, чем нижний предел.
'off'
Значение должно быть больше, чем нижний предел.
'UpperLimitInclusive'
Толерантность верхнего предела'on'
(значение по умолчанию) | 'off'
Толерантность верхнего предела, заданная как одно из следующего:
'on'
— Значение должно быть равно или меньше, чем верхний предел.
'off'
Значение должно быть меньше, чем верхний предел.
Например, если вы хотите, чтобы числовой входной параметр был между 0 и 1, исключая 0 и 1, сделайте все следующее:
Установите значение свойства Limits
to [0 1]
.
Установите свойство UpperLimitInclusive
на 'off'
.
Установите свойство LowerLimitInclusive
на 'off'
.
ValueChangedFcn
Значение изменило обратный вызов''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символаЗначение изменило обратный вызов, заданный как одно из этих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символа, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Этот обратный вызов выполняется, когда пользователь изменяет особое внимание или нажимает клавишу ENTER после изменения значения счетчика. Не имеет значения, изменяет ли пользователь значение счетчика путем ввода или путем нажатия клавиш со стрелками. Обратный вызов не выполняется, если значение счетчика изменяется программно.
Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя со счетчиком. MATLAB передает эту информацию в объекте ValueChangedData
в качестве второго аргумента к вашей функции обратного вызова. In App Designer, the argument is called event.
You can query the object properties using dot notation., Например, event.PreviousValue
возвращает предыдущее значение счетчика. Объект ValueChangedData
не доступен функциям обратного вызова, заданным как векторы символов.
В следующей таблице перечислены свойства объекта ValueChangedData
.
Свойство | Значение |
---|---|
Значение | Значение счетчика после нового взаимодействия пользователя приложения с ним |
PreviousValue | Значение счетчика перед новым взаимодействием пользователя приложения с ним |
Source | Компонент, который выполняет обратный вызов |
EventName | 'ValueChanged' |
Для получения дополнительной информации о записи обратных вызовов, смотрите Обратные вызовы Записи в App Designer.
ValueChangingFcn
Обратный вызов изменения значения''
(значение по умолчанию) | указатель на функцию | массив ячеек | вектор символаОбратный вызов изменения значения, заданный как одно из этих значений:
Указатель на функцию.
Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.
Вектор символа, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.
Эта функция обратного вызова выполняется, когда пользователь кликает и содержит или стрелка вниз на счетчике. Это не выполняется, если свойство Value
изменяется программно.
Эта функция обратного вызова может получить доступ к определенной информации о взаимодействии пользователя со счетчиком. MATLAB передает эту информацию в объекте ValueChangingData
в качестве второго аргумента к вашей функции обратного вызова. In App Designer, the argument is called event.
You can query the object properties using dot notation., Например, event.Value
возвращает текущее значение счетчика. Объект ValueChangingData
не доступен функциям обратного вызова, заданным как векторы символов.
В следующей таблице перечислены свойства объекта ValueChangingData
.
Свойство | Значение |
---|---|
Значение | Текущая стоимость счетчика как пользователь приложения взаимодействует с ним |
Source | Компонент, который выполняет обратный вызов |
EventName | 'ValueChanging' |
Свойство 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 | Расстояние между правыми и левыми внешними краями счетчика |
высота | Расстояние между верхними и нижними внешними краями счетчика |
Все измерения указаны в пикселях.
Значения Position соответствуют выделенной области родительского контейнера.
Область векторной и растровой графики является областью в границах контейнера и не включает область, занятую художественными оформлениями, такими как панель меню или заголовок.
Пример: [100 100 100 22]
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.