(App Designer) Создает компонент кнопки
Используйте только с App Designer или фигурами, созданными с функцией uifigure
. Приложения, созданные с GUIDE или функцией figure
, не поддерживают компоненты кнопки.
kb = uiknob
kb = uiknob(style)
kb = uiknob(parent)
kb = uiknob(parent,style)
kb = uiknob(___,Name,Value)
создает кнопку в новом окне фигуры и возвращает объект kb = uiknob
Knob
. MATLAB® вызывает функцию uifigure
, чтобы создать фигуру.
создает кнопку в заданном родительском контейнере. Родительский элемент может быть созданным использованием kb = uiknob(parent)
Figure
функции uifigure
или одного из ее дочерних контейнеров.
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');
Измените состояния кнопки. Установите данные, сопоставленные с состояниями кнопки отражать температуры в градусах Фаренгейт.
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
, увеличьте значение кнопки, и затем попытайтесь уменьшить его. Когда вы пытаетесь уменьшить значение, ошибочное диалоговое окно отображается, и значение вернулось к предыдущему допустимому значению. Можно только увеличить значение кнопки.