Создайте компонент ручки
создает ручку в новом окне рисунка и возвращает kb
= uiknobKnob
объект. MATLAB® вызывает uifigure
функция для создания рисунка.
задает стиль ручки.kb
= uiknob(style
)
задает свойства объекта с помощью одного или нескольких kb
= uiknob(___,Name,Value
)Name,Value
аргументы в виде пар. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.
fig = uifigure; kb = uiknob(fig);
Задайте Figure
объект как родительский контейнер.
fig = uifigure('Position',[100 100 300 250]); kb = uiknob(fig,'discrete');
Создайте непрерывную ручку на рисунке.
fig = uifigure; kb = uiknob(fig);
Определите пределы ручки.
limits = kb.Limits
limits = 0 100
Измените пределы и значение ручки.
kb.Limits = [-10 10]; kb.Value = 5;
Создайте дискретную ручку.
fig = uifigure;
kb = uiknob(fig,'discrete');
Смените состояния ручки. Связать конкретные данные с состояниями ручки путем настройки ItemsData
. В этом случае ItemsData
отражает температуру в степенях Фаренгейта.
kb.Items = {'Cold', 'Warm', 'Hot'}; kb.ItemsData = {32, 80, 212};
Получите температуру, сопоставленную со значением текущей ручки.
degrees = kb.Value
degrees = 32
Создайте дискретную ручку, которая выполняет действие после того, как пользователь приложения повернет его. Поворот ручки обновляет значение текстового поля, чтобы отразить выбор пользователя приложения.
Скопируйте и вставьте следующий код в файл с именем displayknobvalue.m
на пути MATLAB. Этот код создает окно, содержащее дискретную ручку и текстовое поле. Он задает ValueChangedFcn
коллбэк для обновления текстового поля при повороте ручки.
function displayKnobValue % Create figure window fig = uifigure('Position',[100 100 283 275]); % Create the text field txt = uieditfield(fig,'text',... 'Position', [69 82 100 22]); % Create the knob kb = uiknob(fig,'discrete',... 'Position',[89 142 60 60],... 'ValueChangedFcn',@(kb,event) knobTurned(kb,txt)); end % Code the knob callback function function knobTurned(knob,txt) txt.Value = knob.Value; end
Выполняйте displayKnobValue
и затем поверните ручку. Когда вы отпускаете кнопку мыши, поле редактирования обновляется, отражая новое значение ручки.
Создайте непрерывную ручку, которая выполняет действие после того, как пользователь повернет его. Поворот ручки обновляет значение метки, чтобы отразить выбор пользователя.
Скопируйте и вставьте следующий код в файл с именем showknobvalue.m
на пути MATLAB. Этот код создает окно, содержащее непрерывную ручку и поле метки. Он задает ValueChangedFcn
коллбэк для обновления метки при повороте ручки.
function showKnobValue % Create figure window and components fig = uifigure('Position',[100 100 283 275]); % Create label lbl = uilabel(fig,... 'Position',[218 177 50 15],... 'Text','0'); % Create knob kb = uiknob(fig,... 'Position',[89 142 60 60],... 'ValueChangedFcn', @(kb,event) knobTurned(kb,lbl)); end % Create ValueChangedFcn callback function knobTurned(kb,lbl) num = kb.Value; lbl.Text = num2str(num); end
Выполняйте showKnobValue
и поверните ручку. Когда вы отпускаете кнопку мыши, метка обновляется, отражая новое значение ручки.
Создайте непрерывную ручку, которая неоднократно выполняет действие, когда пользователь поворачивает его. Вместо того, чтобы обновлять метку один раз, когда пользователь отпускает кнопку мыши, эта ручка обновляет метку во время поворота ручки.
Скопируйте и вставьте следующий код в файл с именем showchangingvalue.m
на пути MATLAB. Этот код создает окно, содержащее непрерывную ручку и поле метки. Он задает ValueChangingFcn
коллбэк, чтобы продолжать обновлять метку при повороте ручки.
function showChangingValue % Create figure window fig = uifigure('Position',[100 100 283 275]); % Create numeric edit field num = uieditfield(fig,'numeric',... 'Position',[69 82 100 20]); % Create knob kb = uiknob(fig,... 'Position',[89 142 60 60],... 'ValueChangingFcn',@(kb,event) knobTurned(kb,event,num)); end % Create ValueChangingFcn callback function knobTurned(kb,event,num) num.Value = event.Value; end
Выполняйте showChangingValue
и поверните ручку. По мере того, как вы делаете это, числовое поле редактирования обновляется, чтобы показать меняющиеся значения ручки.
Создайте непрерывную ручку, которая выполняет действие после того, как пользователь повернет его. каждый поворот ручки заставляет MATLAB выполнить вычисление с использованием текущих и предыдущих значений ручки.
Скопируйте и вставьте следующий код в файл с именем increaseOnly.m
на пути MATLAB. Этот код создает окно, содержащее непрерывную ручку. Он задает ValueChangedFcn
коллбэк для ручки, чтобы отобразить Invalid Value диалоговое окно, когда пользователь приложения пытается уменьшить значение ручки.
function increaseOnly % Create figure window fig = uifigure('Position',[100 100 400 275]); % Create knob kb = uiknob(fig,... 'Position',[150 125 60 60],... 'ValueChangedFcn',@(kb,event) nValChanged(kb,event,fig)); end % Create ValueChangedFcn callback function nValChanged(kb,event,fig) newvalue = event.Value; previousvalue = event.PreviousValue; if previousvalue > newvalue uialert(fig, 'Increase value only. Value set to previous value.',... 'Invalid Value'); kb.Value = previousvalue; end end
Выполняйте increaseOnly
, увеличить значение ручки, а затем попытаться уменьшить ее. При попытке уменьшить значение появляется диалоговое окно ошибки, и значение возвращается к предыдущему допустимому значению. Вы можете только увеличить значение ручки.