Создайте компонент кнопки
kb = uiknob
kb = uiknob(style)
kb = uiknob(parent)
kb = uiknob(parent,style)
kb = uiknob(___,Name,Value)
создает кнопку в новом окне рисунка и возвращает объект 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
, увеличьте значение кнопки, и затем попытайтесь уменьшить его. Когда вы пытаетесь уменьшить значение, ошибочное диалоговое окно отображается, и значение вернулось к предыдущему допустимому значению. Можно только увеличить значение кнопки.