uiknob

Создайте компонент ручки

Описание

kb = uiknob создает ручку в новом окне рисунка и возвращает Knob объект. MATLAB® вызывает uifigure функция для создания рисунка.

kb = uiknob(style) задает стиль ручки.

пример

kb = uiknob(parent) создает ручку в указанном родительском контейнере. Родительским элементом может быть Figure созданный с использованием uifigure функции или одного из дочерних контейнеров.

пример

kb = uiknob(parent,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, увеличить значение ручки, а затем попытаться уменьшить ее. При попытке уменьшить значение появляется диалоговое окно ошибки, и значение возвращается к предыдущему допустимому значению. Вы можете только увеличить значение ручки.

Входные параметры

свернуть все

Стиль ручки, заданный как одно из следующих значений:

СтильВнешность
'continuous'

'discrete'

Родительский контейнер, заданный как Figure объект, созданный с использованием uifigure функция, или один из ее дочерних контейнеров: Tab, Panel, ButtonGroup, или GridLayout. Если вы не задаете родительский контейнер, MATLAB вызывает uifigure функция для создания нового Figure объект, который служит родительским контейнером.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Каждый тип объекта ручки поддерживает разный набор свойств. Полный список свойств и описаний для каждого типа см. на связанной странице свойств.

См. также

Функции

Свойства

Введенный в R2016a